gpt4 book ai didi

javascript - 申请(): what do square brackets mean with a function in-between?

转载 作者:行者123 更新时间:2023-11-30 09:30:23 27 4
gpt4 key购买 nike

我已经 found一段代码,似乎可以正常工作,但我不明白其中的一个方面。

> [].forEach.apply('javascript', [function(char) {
... console.log(`give me… ${char.toUpperCase()}`);
... }]);
give me a… J
give me a… A
give me a… V
give me a… A
give me a… S
give me a… C
give me a… R
give me a… I
give me a… P
give me a… T

为什么我们在这里需要第二组这些方括号,它们是什么意思?我从来没有见过把它放在那里的功能。谢谢。

最佳答案

Function.prototype.apply需要 2 个参数。

  1. this 参数。
  2. 要传递给函数的参数数组。

所以函数放在一个数组中,因为apply 函数需要一个参数数组。基本上,您的代码传递了 1 个参数,这是一个函数。

但是,您可以将 .apply 替换为 .call,这样就不需要参数数组了,您可以向 添加多个参数.call 函数。

[].forEach.call('javascript', function(char) {
console.log(`give me… ${char.toUpperCase()}`);
});

.apply 在您有一个现有的参数数组或者您不知道要传递多少参数时最有用,这是 ES6 之前的语法技巧。

关于javascript - 申请(): what do square brackets mean with a function in-between?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46637444/

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