gpt4 book ai didi

javascript - 我无法理解 Array.prootype.slice.call

转载 作者:行者123 更新时间:2023-11-30 12:05:54 25 4
gpt4 key购买 nike

temp = {0:'one', 1:'two', 2:'three', 3:'four',length:4};
console.log( Array.prototype.slice.call( temp, 1));

//["two", "three", "four"]

为什么会这样? length 属性在哪里?调用Array.prototype.slice.call(temp, 1)时不应该是["two", "three", "four", 4]吗?

最佳答案

切片的简化版本:

Array.prototype.slice = function(a, b) {
a = a || 0
if (a < 0) a += this.length
b = b || this.length
if (b < 0) b += this.length
var ret = []
for (var i = a; i < b; i++)
ret.push(this[i])
return ret
}

所以实际上 slice 函数在 this 上使用了 [] 运算符和 .length 属性。这就是它在数组和类数组对象(具有 [].length 的对象)上的工作方式

关于javascript - 我无法理解 Array.prootype.slice.call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35247861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com