gpt4 book ai didi

javascript concat 使用 call 方法

转载 作者:行者123 更新时间:2023-11-28 15:10:23 24 4
gpt4 key购买 nike

我正在尝试使用 concat() 方法在 javascript 中连接两个数组。我想知道这两种情况有什么区别

var a = [1, 2, 3];
console.log(Array.prototype.concat.call(a, [4, 5, 6]));
// Result: [1, 2, 3, 4, 5, 6]

console.log(Array.prototype.concat(a, [4, 5, 6]));
// Result: [1, 2, 3, 4, 5, 6]

我认为通过使用call方法,当我们传入this对象作为第一个参数时,它会改变数组a。但事实并非如此。

最佳答案

Array.prototype.concat.call(a, [4, 5, 6])

等价于a.concat([4, 5, 6])(假设a.concat === Array.prototype.concat,情况就是这样在您的示例中,其中数组的实例)。

Array.prototype.concat(a, [4, 5, 6])

等价于Array.prototype.concat.call(Array.prototype, a, [4, 5, 6])

鉴于 Array.prototype 是一个空数组,两者产生相同的结果。 [].concat(a, [4, 5, 6])Array.prototype.concat.call([], a, [4, 5, 6]) 也会。

关于javascript concat 使用 call 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728460/

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