繁体   English   中英

apply():方括号中的函数表示什么?

[英]apply(): what do square brackets mean with a function in-between?

找到了一些似乎可以正常工作的代码,但是我不理解其中的一个方面。

> [].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之前的语法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM