[英]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個參數。
this
說法。 因此,該函數放置在數組中,因為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.