2010-03-08 18 views

Odpowiedz

11

Głównym celem funkcji anonimowej jest zawijanie wszystkiego w prywatnej przestrzeni nazw, co oznacza, że ​​zadeklarowane zmienne nie zanieczyszczają globalnej przestrzeni nazw, zasadniczo jak piaskownica.

var test = 1; 

test będzie zanieczyszczać globalnej przestrzeni nazw, to window.test być ustawiony.

(function() { 
    var test = 1; alert(test); 
})(); 

window.test jest niezdefiniowany, ponieważ znajduje się w naszej prywatnej piaskownicy.

5

To "chroni" globalną przestrzeń nazw przed skażeniem.

(function() { 
    var something = "a thing"; 
    // ... 
    if (something != "a thing") alert("help!"); 
    // ... 
    function utility(a, b) { 
    // ... 
    }; 
    // ... 
})(); 

Teraz te tymczasowe zmienne i funkcje są chronione wewnątrz tej zewnętrznej funkcji wyrzucania. Kod wewnątrz może z nich korzystać, ale globalna przestrzeń nazw jest czysta i wolna od brudnych, niechcianych zmiennych.

Globalna przestrzeń nazw jest cennym zasobem. Wszyscy powinniśmy być świadomi jego znaczenia dla nas samych, a zwłaszcza dla naszych dzieci.

Powiązane problemy