Self invoking functions

()();


(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.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *