在JavaScript中,有些对象假装是数组(或者是"类似数组").这些对象是arguments,NodeLists(从getElementsByClassName等等返回)和jQuery对象.
当console.logged时,它们显示为数组,但它们不是.我知道,为了像数组一样,对象必须具有length属性.
所以我做了一个像这样的"对象":
function foo(){
this.length = 1;
this[0] = "bar";
}
var test = new foo;
Run Code Online (Sandbox Code Playgroud)
当我console log(test),我得到(如预期)一个foo对象.我可以使用它将其"转换"为数组
Array.prototype.slice.call(test)
Run Code Online (Sandbox Code Playgroud)
但是,我不想转换它,我希望它像阵列一样.如何制作类似于数组的对象,以便在console.log它出现时,它会显示为数组?
我尝试过设置foo.prototype = Array.prototype,但console.log(new foo)仍显示一个foo对象,而不是一个数组.