理解力のなさ。
ECMAScript におけるオブジェクトは連想配列 (obj.propertyX == obj["propertyX"]) ってのは分かっていたつもりだったのに Object Initializer Object Initialiser って何だよとか思ってた。よく FF の拡張なんかで見る foobar : function () {} だけど、ちゃんと考えれば連想配列のモンスターバージョンの一部だった……形が変わって完全混乱ですよ。あぁ……
// 普通に見える連想配列
obj = { "key" : "val", "key2" : "val2" };
// 不思議定義に見える連想配列
obj = {
propertyX : "",
foo : function () {
// do foothing
},
bar : function () {
// do barthing
}
}; キーにダブルクオーテーションはあってもなくてもいいらしい。Identifier が指定されたときは StringLiteral に勝手に変換される。そんなわけでオブジェクトのメンバのリストを取得するのと連想配列を順番に取得するのに同じ for ( - in - ) が使えると……
関連エントリー
- Object.prototype にプロパティを追加する副作用 できるだけ追加しないほうがいいねっていう話。なぜなら、単純に連想配列としてオブジェクトを作っても prototype に追加したプロパティが...
- Object.prototype Object.prototype.foo = function () {alert(this);} document.foo(); //=>...
- prototype.js .inspect $H() $H() と inspect() の組み合わせが微妙に便利だ。普通の object って toString() しても [object Ob...
- ECMAScript での var 前に書いた気がするけど、ECMAScript の var は Io の setSlot に似ている。 var foo; と書くと、既存のスコ...
- 3Dプリンタの Object Cancellation (Klipper + Mainsail) プリント中に一部のオブジェクトだけ反って浮いてきてしまった場合やベッドから外れてしまった場合などに、該当するオブジェクトだけスキップして他の...