John Resig 著の「Secrets of the JavaScript Ninja」という本を読んでいます。その中で彼は、オブジェクトのプロトタイプを次のコードで拡張することにより、言語の将来の機能を予測する方法を説明しています。
if(!Array.prototype.forEach){
Array.prototype.forEach = function(fn, callback){
for(var i = 0; i < this.length; i++){
fn.call(callback || null, this[i], i, this);
}
};
}
これで、「callback || null」ステートメントにより、未定義の可能性のある値が「call」関数に渡されないことがわかりました。私が理解していないのは、「fn」パラメーターのコンテキストとして null を渡すことの結果がどうなるかということです。それはコードをクラッシュさせませんか?
あなたが提供できる説明や啓発に感謝します。