Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Was diese Praxis in JavaScript? genannt ist                                      8 Antworten                          
  •     
    
(function() {

  //do stuff

})();

EDIT: Ich dachte ursprünglich dieses Konstrukt eine Schließung genannt wurde - nicht, dass die Wirkung, dass es Ergebnisse verursacht (potentiell) in einem Verschluss - wenn Variablen erfaßt werden.

Dies ist in keiner Weise mit dem Verhalten von Verschlüssen zu tun, um sich -. Das verstehe ich voll und war nicht das, was gefragt wurde

War es hilfreich?

Lösung

Es ist eine anonyme Funktion (oder genauer gesagt eine scoped anonyme Funktion ), dass wird sofort ausgeführt.

Die Verwendung ist, dass alle Variablen und Funktionen, die in ihr deklariert werden, werden in dieser Funktion scoped und werden daher von jedem globalen Kontext versteckt (so Sie Verkapselung und Information Hiding gewinnen).

Andere Tipps

es ist eine anonyme Funktion, aber es ist kein Verschluss, da Sie keine Verweise auf den äußeren Umfang haben

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

Ich nenne es in der Regel so etwas wie „die unmittelbare Anrufung einer anonymen Funktion.“

oder einfacher „Funktion Selbst Aufruf.“

kindof. Es ist nicht wirklich in der Nähe um allem aber, und es wird sofort aufgerufen, also ist es wirklich nur eine anonyme Funktion.

Nehmen Sie diesen Code ein:

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

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

Hier kann die Funktion von foo () zurück ist ein Verschluss. Es schließt die eine Variable um. Auch wenn ein haben, schon lange nicht mehr aus Umfang apear würde, die Schließung Aufruf durch den Aufruf es immer noch den Wert zurückgibt.

Nein, ist ein Verschluss eher etwas in diese Richtung:

function outer()
{
    var variables_local_to_outer;

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

    return inner;
}

var closure = outer();

der Verschluss behält einen Verweis auf die Variablen lokal für die Funktion, die es zurückgegeben.

Bearbeiten : Sie können anonyme Funktionen natürlich erstellen einen Verschluss mit:

var closure = (function(){

    var data_private_to_the_closure;

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

})();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top