2010-03-08 13 views

risposta

11

Lo scopo principale della funzione anonima di autoesecuzione è quello di avvolgere tutto in uno spazio dei nomi privato, nel senso che qualsiasi variabile dichiarata non inquina lo spazio dei nomi globale, fondamentalmente come una sandbox.

var test = 1; 

test sarebbe inquinare il namespace globale, window.test sarebbe impostato.

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

window.test non è definito, perché è nella nostra sandbox privata.

5

che "protegge" il namespace globale dalla contaminazione.

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

Ora, le variabili e le funzioni temporanee sono tutti protetti all'interno che la funzione esterna e getta. Il codice al suo interno può utilizzarli, ma lo spazio dei nomi globale viene mantenuto pulito e privo di variabili sporche e indesiderate.

Lo spazio dei nomi globale è una risorsa preziosa. Dovremmo essere tutti consapevoli della sua importanza per noi stessi e, soprattutto, per i nostri figli.

Problemi correlati