()();
(function(){})();
(function(w){
w.propEdno = 100;
w.metoEdno = function(){
alert(w.propEdno * 100);
};
var propDve = 200;
var metoDve = function(){
alert(this.propDve * 100);
};
this.propTri = 300;
this.metoTri = function(){
alert(this.propTri * 100);
};
})(window);
window.metoEdno();
window.metoDve();
window.metoTri(); metoTri(); this.metoTri();
window.metoEdno(); ще алертне 10,000, защото така metoEdno() и propEdno стават метод и пропърти на window обекта.
propDve и window.metoDve(); са private и ще дадат грешка от рода на Uncaught TypeError: window.metoDve is not a function… Те не могат да се викат отвън.
window.metoTri(); metoTri(); this.metoTri(); ще алертне 30,000 три пъти, защото:
1. първият път metoTri() и propTri стават public част от window обектът;
2. вторият път и двете стават public – от глобалният скоуп;
3. третия път this прави metoTri() и propTri също public.