質問

インデックスとして数値を受け取るカスタム Array オブジェクトを作成します。インデックスの値に応じて、計算された値を返します。

例:

>>> var MyArray(2);
>>> MyArray[2];
4
>>> MyArray.2;
4

示された例では、関数の方が優れていることは知っていますが、概念的な配列であるもののプロパティ/インデックスルックアップをオーバーライドできるかどうかを知りたいのですが、計算が必要な場合があります。

x.1 == x [1] であることがわかっているので、javascriptでプロパティを作成する必要があります。

つまり、 x.variable = x.myPropery()を作成するため、 x.variable の値を取得するたびに、の戻り値を受け取ります。 > x.myPorperty()

これは可能ですか?

役に立ちましたか?

解決 2

現在 Javascriptのゲッターとセッターはでのみ使用できます

>
  • Firefox
  • Safari 3 +
  • Opera 9.5 +

Internet Explorer(いずれかのバージョン)にはこの点が欠けています。

他のヒント

variable [property]はドット表記と同じであるため、評価されるメソッドではなく変数であるMyArray.2を実行しています。割り当てられたときにプロパティを変更するメソッド、または引き出したときに適切な値を計算するメソッドなしでは、本当に望むことを行うことはできません。

いいえ、あなたは[]をオーバーライドすることはできません。単にドット表記であり、実際にオーバーライドできるインデックスではありません

再:あなたのコメント、絶対に、あなたはできる

var x = new Array();
x[1] = function () { alert('x') };

var myFunction = x[1];

x[1]();        // alerts "x"
myFunction();  // alerts "x"

alert(x[1]);         // alerts "function () { alert('x') };"
alert(myFunction);   // alerts "function () { alert('x') };"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top