これはブラウザによってどのように直接行われるのか不思議です。私は、Javascript EnginesのArrayの.lengthプロパティは、実際には目に見えないセッターとゲッターを使って、ECMAの標準の機能を達成すると聞いています。「lengthプロパティが変更されるたびに、値が小さくない配列インデックス新しい長さが自動的に削除されます ")。私はこのケースでセッターが必要だと理解していますが、ゲッターは何ですか?この価値を得るためにネイティブゲッターを実際に呼び出す必要がありますか?または、これはJavascript Engineをどこか理解している間違いです。Javascript配列.lengthプロパティ/ JavascriptEngineのメソッド
0
A
答えて
3
プロパティは、フィールドとして、またはsetter/getterメソッドとして実装されるか...
var obj = {myProp:0}.myProp; // getting
obj.myProp = 1; // setting
上記の例は少しファンキーですが、私はあなたのアイデアを得ると思います。
フィールドの場合、それは単なる値です。値を設定すると、値が変化するよりも何も起こりません。
値が設定されるたびに何かを実行するためにsetterメソッドがある場合は、getterメソッドが値を返す以外に何もしない場合でも、一致させるgetterメソッドがあります。プロパティを実装する2つの方法を混在させたくない場合は、どちらの方向にも簡単に進むことができます。
2
defineGetter and defineSetterをご覧ください。これはFirefoxがそれをする方法かもしれませんが、他のブラウザについてはわかりません。
本当に問題はありますか? .lengthは私が知っているすべてのためにC++で実装することができます。それはjavascriptエンジンの組み込み部分であり、実際にはjavascriptでは実装できません。あなたが知る必要があるのは、配列の長さが長さを保持し、配列の長さが変更された場合です。
1
JavaScriptのArrayオブジェクトには、配列インスタンスの現在の長さを返す関数プロパティ.length()があります。 GettersとsetterはJavaScript 1.6(私は思う)のように定義することができますが、広く採用されておらず、私はそれをあまり利用していません。ゲッターと値を返す関数の唯一の違いは、構文です。ゲッターとセッターは、割り当ての方向に応じてエンジンから呼び出すことができます。
関連する問題
- 1. JavaScript配列の長さメソッド
- 2. メソッドのjavascriptプロパティ
- 3. Rustのalloca/variable length配列ですか?
- 4. 2次元配列(y軸)のPHP配列.length
- 5. JavaScriptのprototypeプロパティは配列とオブジェクトフィールド
- 6. javascriptオブジェクトのプロパティ/配列操作
- 7. Javascriptの新しい配列とjoin()メソッド
- 8. ヌル(javascript)のプロパティ 'length'を読み取れません
- 9. javascript配列をC#メソッドに渡す
- 10. Length列定義のプロパティが認識されない
- 11. 2D配列プロパティ
- 12. 、配列プロパティが
- 13. Phingの配列プロパティ
- 14. PHP配列のJavaScript配列
- 15. 配列の "length"属性にアクセスできない
- 16. プリミティブ配列でのClojure - 反射警告.length
- 17. VB.net 2008プロパティ配列
- 18. JavaScriptの配列要素はArrayオブジェクトのプロパティだけですか?
- 19. JavaScript内のプロパティとメソッド名のアンダースコアプレフィックス
- 20. プロパティ/メソッドを配列に拡張しますか?
- 21. Javascriptを:objectに配列の値を追加する方法プロパティ
- 22. Javascript配列オブジェクトのプロパティを変更しますか?
- 23. LPADその列のMAX LENGTHの列
- 24. プロパティ値のスプライス配列ベース
- 25. JavaScriptメソッド/プロパティのブラウザ可読性/サポートテーブル
- 26. Javascriptの配列 - 配列の要素
- 27. javascriptの - 配列の配列、カウントインデックス
- 28. javascript配列の拡張メソッドは、次のようにループ
- 29. javascriptの長さの複雑さ.length
- 30. オブジェクトの配列プロパティの行列
ネイティブオブジェクトには、独自のゲッタ/セッタを持つことができます。 –