Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         
(function() {

  //do stuff

})();

EDIT: Al principio pensé esta construcción se llama un cierre - no es que el efecto que causó los resultados de (potencialmente) en un cierre - si son capturados variables.

Esto no es en absoluto que ver con el comportamiento de los propios cierres -. Esto lo entiende completamente y no fue lo que se le pedía

¿Fue útil?

Solución

Es una función anónima (o más exactamente una restringidos al anónimo función ) que será ejecutado inmediatamente.

El uso de uno es que ninguna de las variables y funciones que se declaran en que están en el ámbito de esa función y, por tanto, están ocultos a cualquier contexto global (para que pueda obtener la encapsulación y ocultación de información).

Otros consejos

es una función anónima, pero no es un cierre ya que no tiene referencias al ámbito exterior

http://www.jibbering.com/faq/notes/closures/

Por lo general llaman algo así como "la invocación inmediata de una función anónima."

O, más simplemente, "la función de auto-invocación."

Kindof. Es en realidad no se cierran alrededor de nada, sin embargo, y se llama de inmediato, por lo que no deja de ser una función anónima.

Tome este código:

function foo() {
    var a = 42;
    return function () {
        return a;
    }
}

var bar = foo();
var zab = bar();
alert(zab);

Aquí la función devuelto por foo () es un cierre. Se cierra alrededor de la variable a. A pesar de que un apear habría que tener mucho salido del ámbito de aplicación, invocando el cierre llamando todavía devuelve el valor.

No, un cierre es más bien algo como lo siguiente:

function outer()
{
    var variables_local_to_outer;

    function inner()
    {
        // do stuff using variables_local_to_outer
    }

    return inner;
}

var closure = outer();

el cierre conserva una referencia a las variables locales a la función que devolvió.

Editar : Se puede crear un cierre por supuesto el uso de funciones anónimas:

var closure = (function(){

    var data_private_to_the_closure;

    return function() {
        // do stuff with data_private_to_the_closure
    }

})();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top