次のようなコードがたくさんあります。
var myApp ={};
(function() {
console.log("Hello");
this.var1 = "mark"; //"this" is global, because it runs immediately on load. Caller is global
myApp.sayGoodbye = function() {
console.log("Goodbye");
};
})();
これにより、匿名関数がすぐに実行されます。しかし、コードをインラインに置くことと比較して、これにはどのような利点があるのでしょうか?
var myApp ={};
console.log("Hello");
var1 = "mark";
myApp.sayGoodbye = function() {
console.log("Goodbye");
};
どうやら関数のスコープに関係しているようですが、関数は匿名でウィンドウによって呼び出されるため、スコープ(つまりthis
)はグローバルですよね?