我是JS界的初學者,我有一個問題。 當我正在研究.forEach()JavaScript函數,我注意到它需要兩個參數,第一是一個函數,第二個是該obj的值和正常使用這樣的:如何調用函數作爲函數中的回調參數繼續?
function logArrayElements(element, index, array) {
console.log('a[' + index + '] = ' + element);
}
// Notice that index 2 is skipped since there is no item at
// that position in the array.
[2, 5, , 9].forEach(logArrayElements);
但我還注意到,它可以也被稱爲是這樣的:
例如NUM 2:
[2, 5, , 9].forEach(function(){
console.log(arguments);
});
如果.forEach()函數的回調函數作爲參數,第二個例子是如何正確的,因爲它需要一個函數定義不參考一個函數將被稱爲,
我的意思是爲什麼它在第二個示例中接受函數定義,雖然它需要一個定義的函數名稱?
我還指的forEach只需要一個函數的引用,所以當它循環的每個元素,它只會增加()的函數引用這樣的功能將被稱爲
forEach在第一個例子中添加了()來調用函數,在第二個函數中如何定義它,然後將它設置爲參數然後用add()來調用函數,邏輯不公平。 – youhana
JavaScript中的@youhana函數是第一類對象。第一個和第二個唯一的區別在於,第二個回調是在.forEach()內定義的。這在Javascript中有效。 – vabii
您的評論是正確的,我搜索並修改了這一點,發現函數表達式(匿名函數或未命名的函數)返回一個函數的引用,該函數將引用該命名函數或已定義的函數,謝謝 – youhana