我找到了关于javascript的link,在这里我了解call
将如何运作
在链接中,这些人提供了以下示例。
var anArrayLikeObj = {0:"Martin", 1:78, 2:67, 3:["Letta", "Marieta", "Pauline"], length:4 }
Array.prototype.slice.call (anArrayLikeObj, 0)
以下列方式获得输出。
["Martin", 78, 67, Array[3]
他们提供什么,它工作得很好。为了我的理解目的,我用以下方式修改了对象(anArrayLikeObj)。
var anArrayLikeObj = {0:"Martin", 1:78, 2:67, 3:["Letta", "Marieta", "Pauline"]}
Array.prototype.slice.call (anArrayLikeObj, 0)
获取输出emptyArray([])。所以我不明白两者都是对象,唯一不同的属性length
。因为它不能解决我的问题。
有什么理由吗?
答案 0 :(得分:3)
JavaScript中的术语array-like指的是具有非负整数属性和数字length
属性的对象。因此,您的第二个对象不是类似数组的。
请注意,Array.prototype.slice
正在使用length
中提供的 值来确定对象中有多少元素。无论对象的实际大小如何,更改该值都会创建不同的输出。