このコードは動作します:配列項目の関数呼び出しで、関数ではないというエラーが発生するのはなぜですか?
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