14
當我在jQuery中開發時,我經常發現自己在Chrome/Firebug控制檯中輸入選擇器並查看他們給我的東西。他們總是很好地格式化,如果他們數組:什麼使Firebug/Chrome控制檯將自定義對象視爲數組?
我試圖找出它是什麼,讓控制檯治療的對象數組。例如,下面的自定義對象不被視爲一個陣列:
function ElementWrapper(id) {
this[0] = document.getElementById(id);
}
如果我然後添加length
屬性和splice
方法,它神奇地工作作爲一個數組,與整數的任何屬性鍵視爲陣列的成員:
function ElementWrapper(id) {
this[0] = document.getElementById(id);
this.length = 1;
this.splice = Array.prototype.splice;
}
所以基本上我的問題是:什麼決定了控制檯是否將對象顯示爲數組?是否有任何理由,或者它是完全武斷的「如果一個對象具有這些屬性,它必須是一個數組?」如果是這樣,那麼決定性的屬性是什麼?
非常感謝 - 這是一個很好的答案! – lonesomeday 2011-02-09 22:46:02