Я вижу много кода вроде:
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) является глобальной, no?
