gpt4 book ai didi

javascript - array.fill.call() 在 js 中如何工作?

转载 作者:行者123 更新时间:2023-12-01 02:39:10 24 4
gpt4 key购买 nike

Mozilla developer包括以下函数 fill 的示例:

[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3}

我不明白你需要 call() 做什么以及它如何到达该输出。

最佳答案

这里是 fill 实现的一瞥(为了解释):

Array.prototype.fill = function(value) {
for(var i = 0; i < this.length; i++) {
this[i] = value;
}
}

现在,当我们执行 fill.call( { length: 3 }, 4 ) 时,我们将对象 { length: 3 } 作为 this 传递> 和 4 作为。其余的就很明显了。

fill 是一个数组函数。为了工作,应该在具有有效 length 属性的对象上调用它。然后 fill 从该对象的 0 循环到 length - 1,设置该对象的键值属性,其中 key 是该对象的当前索引循环(即上面伪代码中的 i),value 是我们传递给它的value

但是使用call,我们可以不传递数组,而是传入一个类数组对象,该对象是一个看起来像数组的对象(具有有效的length 属性)。 fill 被欺骗相信我们调用它的对象是一个数组。并对其执行与实际数组相同的操作。

关于javascript - array.fill.call() 在 js 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684600/

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