Also ich bin neu in der Programmierung und ich versuche, JS mit dem Buch Eloquent Javascript zu lernen.JavaScript Beispielfrage: lexikalische Scoping/Schließung - Eloquent Javascript
So weit so gut, bis ich ein Beispiel mit dem folgenden Code erreicht
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
Anmerkung: Show wie Alarm ist, es zeigt nur die Variablen auf dem Bildschirm einer JS-Konsole das Tutorial integriert hat.
Der Autor sagt, dass dies ein Beispiel ist, um zu zeigen, wie lexikalisches Scoping erlaubt, Funktionen zu synthetisieren. Chapter here
Was ich nicht verstehe ist, wie addTwo
und addFive
, die angeblich Variablen sind, können Parameter an die Funktionen makeAddFunction
und add
und insbesondere senden, wie funktioniert die Funktion add
weiß, dass der Parameter die Variablen senden ist der Parameter number
.
Vielen Dank für Ihre Hilfe Jungs!
Es lohnt sich wahrscheinlich, dies zu lesen: http://en.wikipedia.org/wiki/Closure_(computer_science) –