相关疑难解决方法(0)

是什么让Firebug/Chrome控制台将自定义对象视为数组?

当我在jQuery中开发时,我经常发现自己在Chrome/Firebug控制台中键入选择器并查看它们给我的内容.它们总是很好地格式化,就像它们是数组一样:

Chrome的控制台将jQuery选择显示为数组

我试图找出使控制台将对象视为数组的原因.例如,以下自定义对象不被视为数组:

function ElementWrapper(id) {
    this[0] = document.getElementById(id);
}
Run Code Online (Sandbox Code Playgroud)

Chrome的控制台将对象显示为普通对象

如果我然后添加length属性和splice方法,它神奇地用作数组,任何具有整数键的属性被视为数组的成员:

function ElementWrapper(id) {
    this[0] = document.getElementById(id);
    this.length = 1;
    this.splice = Array.prototype.splice;
}
Run Code Online (Sandbox Code Playgroud)

Chrome的控制台将对象显示为数组

所以基本上我的问题是:什么决定控制台是否将对象显示为数组?它是否有任何基本原理,或者它是完全随意的"如果一个对象具有这些属性,它必须是一个数组?" 如果是这样,决定性的属性是什么?

javascript console jquery firebug google-chrome

14
推荐指数
1
解决办法
804
查看次数

标签 统计

console ×1

firebug ×1

google-chrome ×1

javascript ×1

jquery ×1