map.cubeと入力して、map.cube.polyと入力して必要なものを指定しない限り、デフォルトとしてpt3arraylocationを返すようにしたい。
例:map.cubeは[0,0,0]を返し、map.cube.polyはオブジェクトキューブ内のオブジェクトpolyを返します。
JavaScriptではそれを行うことはできません。
ただし、別の方法として、必要に応じて配列に任意のプロパティを追加できることに注意してください。たとえば、次のようになります。
var map {
cube: [0,0,0],
other: [1,0,0]
};
map.cube.poly = {}; // {} is the same as `new Object()` but not subject to people...
map.other.poly = {}; // ...overriding the `Object` symbol
次にmap.cube
、配列をmap.cube.poly
提供し、その配列に格納したオブジェクトを提供します。
これはどのように可能ですか?JavaScriptでは、配列は実際には配列ではないためです。これらは、自動length
プロパティを持ち、プロパティ名のクラス(すべて数値の名前)を特別な方法で処理し、Array.prototype
それらをバックアップするオブジェクトにすぎません。もちろん、任意のオブジェクトにプロパティを追加できます。
これを行うためのリテラル構文はありません。そのため、上記のオブジェクト初期化子の後に割り当てを行う必要がありました。しかし、それは完全に有効です。私はいつもそれをクロスインデックス配列に使用しています。
これを行う場合は、for..in
誤って使用していないことを確認してください。もっと。