此代碼的工作:爲什麼數組項目上的函數調用會產生「不是函數」錯誤?
function forEach (list, callback) {
for (var n = 0; n < list.length; n++) {
callback.call(list[n], n);
}
}
下列不:
function forEach (list, callback) {
for (var n = 0; n < list.length; n++) {
list[n].callback(n); // Uncaught TypeError:
// list[n].callback is not a function
}
}
注:在每種情況下,callback
傳遞了一個匿名函數與一個參數,像這樣:
forEach(array, function(index) {
// log to console...
});
因爲'list [n]'不是具有'callback'屬性的對象。 – Barmar
@Barmar謝謝。 – Sabuncu