私が以下を実行した場合:
var fn = function(){}
(function(){
fn();
}());
Chromeでは「TypeError:undefined is not a function」をスローし、Firebugでは「TypeError:fn isnotafunction」をスローします。
fn
する必要なしに、このスコープチェーンで利用できるべきではありませんwindow.fn
か?
奇妙な部分は、私が実行した場合:
var fn = function(){}
console.log(fn);
(function(){
fn();
}());
その後、期待どおりに動作しfn
ます。関数としてログに記録され、ChromeまたはFirefoxのいずれでもエラーはスローされません。
これは、JSを理解していると主張するべきではないように、私をばかげていると感じさせています。