javascriptでプロパティを作成することは可能ですか?
-
22-07-2019 - |
質問
インデックスとして数値を受け取るカスタム 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') };"
所属していません StackOverflow