Nachdem die Grundlagen der Verschlüsse zu verstehen gibt es einen Zweifel daran, dass ich noch eindringlichen:Wo befindet sich die umschließende Funktion nach der Ausführung oder nach der Rückgabe der Closure-Funktion?
Wo umschließenden Funktion seine Ausführung Post wohnt oder nach dem Schließen-Funktion zurückkehrt?
Ich glaube, Funktionen befinden sich in Stack-Datenstruktur und von der Spitze des Stapels abgehängt, sobald Funktion die Ausführung beendet/gibt einen beliebigen Wert zurück.
Aber in Closures, werden innere Funktion in den Zustand zugreifen müssen noch Funktion der Einhausung, wie?
function sayHello(name) {
var text = name + ' !!!'; // Local variable
return function(wish) { console.log(wish + ', ' +text); }
}
var say = sayHello('Bob');
say('Hey');
say('Hello');
Wo ist sayHello
vorhanden, wenn es eine Funktion gibt, als von der Funktion Stapelrahmen entfernt?
* „Aber in Closures, wird innere Funktion noch auf den Zustand zugreifen muß, um in Abhängigkeit von Enclosing, wie?“ * Das ist eine Implementierung Detail und verschiedene Motoren könnten dies anders machen, sondern auch die Umwelt (die hält die Bindungen) wahrscheinlich auf dem Heap gespeichert. –
@FelixKling danke für deine Antwort. Ich habe noch einige Fragen wie: Wo befinden sich Funktionen und Objekte in Javascript? Finde keine Hilfe online. Verfügen Sie über Ressourcen, die mehr Licht auf Speicherzuweisung und -verwaltung in JS werfen? – BeingSuman