【发布时间】:2011-06-24 11:26:23
【问题描述】:
当我使用 jQuery 进行开发时,我经常发现自己在 Chrome/Firebug 控制台中输入选择器并查看它们给我的信息。它们的格式总是很好,就好像它们是数组一样:
我正在尝试弄清楚是什么使控制台将对象视为数组。例如,以下自定义对象不被视为数组:
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;
}
所以本质上我的问题是:是什么决定了控制台是否将对象显示为数组?是否有任何理由,或者它是完全任意的“如果一个对象具有这些属性,它必须是一个数组?”如果有,决定性的属性是什么?
【问题讨论】:
标签: javascript jquery google-chrome console firebug