Ich dachte, ich verstehe Schließungen, aber ich denke nicht. Hier ist ein Codebeispiel, das das Problem zeigt, in das ich hineingeraten bin. Ich würde erwarten, dass der Code "Text" auf die Konsole drucken würde.Schließung Missverständnis
var inner = function() {
console.log(text);
};
var outer = function(cb) {
var text = 'text';
cb();
};
Ich führe die äußere Funktion mit der inneren Funktion als cb. In diesem Fall bekomme ich var Text undefiniert. Ich dachte, dass die innere Funktion immer noch einen Verweis auf die Textvariable wegen der js-Schließung haben würde.
//Run outer with a cb of inner.
outer(inner);
Erprobt mit einer anonymen Funktion als ein cb und gibt den gleichen Fehler von Text undefined.
//Anonymous
outer(function() {
console.log(text);
});
Irgendwelche Ideen, was mir hier fehlt? Ich benutze die Schließung in anderen Bereichen meines Programms ohne Probleme, aber ich verstehe nicht ganz, was vor sich geht.
Danke, verdeutlicht das Problem für mich. Ich werde auch die Schließungen genauer unter die Lupe nehmen müssen. – Elliot