簡體   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