2010-03-08 13 views

Respuesta

11

El objetivo principal de la función anónima autoejecutable es envolver todo en un espacio de nombres privado, lo que significa que las variables declaradas no contaminan el espacio de nombres global, básicamente como un entorno limitado.

var test = 1; 

test contaminaría el espacio de nombres global, window.test se establecería.

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

window.test no está definido, porque está en nuestro sandbox privado.

5

que "protege" el espacio de nombres global de la contaminación.

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

Ahora, esas variables y funciones temporales están todas protegidas dentro de esa función de descarte externo. El código interno puede usarlos, pero el espacio de nombres global se mantiene limpio y libre de variables sucias y no deseadas.

El espacio de nombres global es un recurso precioso. Todos debemos ser conscientes de su importancia para nosotros y, especialmente, para nuestros hijos.

Cuestiones relacionadas