私が以下を実行した場合:
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を理解していると主張するべきではないように、私をばかげていると感じさせています。