9

C#では、次のようにカスタムインデクサーを作成できます

public object this[string name]
    {

    }

オブジェクトの配列をラベルと呼ばれるプロパティとして受け取るウィジェットを持つjavascriptウィジェットライブラリを使用しています

new  Thingy({
      labels: [{value:1, text:"my label"},[{value:2, text:"my next label"}]
      });

問題は、ラベルを必要とするすべての値が何であるかを正確に把握するために、前もって計画を立てなければならないことです。たとえば、上記の例では、ラベルが値 1 と 2 になることがわかっています。しかし、値が何であるかがわからない場合は、その値に基づいてテキストを動的に作成できるようにしたいと考えています。アクセスしようとする

そのため、ライブラリが内部的にアクセスしようとすると:

this.labels[n].text

this.labels[n] のようなことをしたい

function(n){return {text: "label for " + n};}

これはJavaScript言語の範囲内で可能ですか?

4

1 に答える 1

1

最新の Chrome でes6 プロキシを取得し、C# のようにハンドラーを作成できますが、古いブラウザーとは互換性がありません。

getLabel()その間、メソッドを に置くことをお勧めしThingy.prototypeます。

于 2012-06-05T22:26:01.330 に答える