¿Cómo funciona la construcción (function() {})() y por qué la gente la usa?

Resuelto Tom Lehman asked hace 15 años • 15 respuestas

(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

Tom Lehman avatar Oct 29 '09 01:10 Tom Lehman
Aceptado

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.

Seb avatar Oct 28 '2009 18:10 Seb

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
})();
Daniel LeCheminant avatar Oct 29 '2009 12:10 Daniel LeCheminant