¿Cómo funciona la construcción (function() {})() y por qué la gente la usa?
(function() {})()
y su primo específico de jQuery(function($) {})(jQuery)
aparece todo el tiempo en código Javascript.
¿Cómo funcionan estos constructos y qué problemas resuelven?
Ejemplos apreciados
Con la creciente popularidad de los marcos de JavaScript, el $
signo se utilizó en muchas ocasiones diferentes. Entonces, para aliviar posibles conflictos, puedes usar estas construcciones:
(function ($){
// Your code using $ here.
})(jQuery);
Específicamente, se trata de una declaración de función anónima que se ejecuta inmediatamente pasando el objeto jQuery principal como parámetro. Dentro de esa función, puede usarla $
para hacer referencia a ese objeto, sin preocuparse de que otros marcos también estén dentro del alcance.
Esta es una técnica utilizada para limitar el alcance de las variables; es la única forma de evitar que las variables contaminen el espacio de nombres global.
var bar = 1; // bar is now part of the global namespace
alert(bar);
(function () {
var foo = 1; // foo has function scope
alert(foo);
// code to be executed goes here
})();