JavaScript オブジェクト リテラルを自己実行匿名関数でラップしようとしています。以下の最初のコード例は正常に動作しますが、2 番目のコード例はうまく動作しません。その理由はよくわかりません。
作品:
(function(){
return MyApp = {
init: function() {
console.log('MyApp init');
}
}
})();
動作しません:
(function(){
var MyApp = {
init: function() {
console.log('MyApp init');
}
}
return MyApp;
})();
私が理解しているように、SEAFは実行され、すぐに戻るはずです。そのため、最初の例では、操作できるオブジェクトとして MyApp が返されます。MyApp を SEAF 内の変数に割り当ててから返すと、同じことが行われると思いましたが、次のようになります。
Uncaught ReferenceError: MyApp is not defined
なんで?