{key0: value0, key1: value1, ..., keyN: valueN}
末尾が「,」で終わっていると IE や Opera ではエラーになるので注意(IE8 では通る模様)。
{key0: value0, key1: value1, ..., keyN: valueN, } // これはエラー
obj の要素を総なめするには for in を使うと良い。
Collection の場合は Array の反復メソッド(iteration method) を call や apply で流用すると良い。
毎回 [].〜.call って書くのが面倒なら collection の prototype に Array の反復メソッドを放り込んどくという手も。
クラス毎個別に拡張するのすら面倒なら root である Object の prototype に放り込んでしまうという手も。
for (let k in obj) { // obj[k] }prototype chain を traverse させたくない場合は hasOwnProperty() メソッドを使って以下のようにすると良い。
for (let k in obj) if (obj.hasOwnProperty(k)) { // obj[k] }
Collection の場合は Array の反復メソッド(iteration method) を call や apply で流用すると良い。
[].map.call(obj, fnc);
毎回 [].〜.call って書くのが面倒なら collection の prototype に Array の反復メソッドを放り込んどくという手も。
NodeList.prototype.map = [].map; document.querySelectorAll(selector).map(fnc);
クラス毎個別に拡張するのすら面倒なら root である Object の prototype に放り込んでしまうという手も。
Object.prototype.map = [].map; document.querySelectorAll(selector).map(fnc);ただし Namespace 汚染する気がするので、ちょっと邪悪かも?
タグ
コメントをかく