Lieber molily,
Mehrfachdeklaration ist kein Problem. Variablendeklarationen werden durch »Hoisting« ohnehin nur einmal, nämlich beim Springen in den Funktionskontext vor Beginn der Ausführung des Funktionskörpers abgearbeitet.
das wusste ich so noch nicht. Mir war irgendwie in Erinnerung, dass folgendes zu einem Problem führt:
function bar () {
var test = "test";
var a = 1;
var test = "Tester"; // Problem
}
Ein Variablenobjekt ist etwas anderes als eine Variable. Der korrekte Begriff hier ist »Variable«. Siehe auch http://molily.de/javascript-core/
Sachlich gesehen hast Du natürlich wieder mal Recht. Für jemanden, der das Prinzip mit den Closures noch nicht verstanden hat, ist es aber schneller nachvollziehbar, wenn man eben bei der Variable betont, dass nicht ihr Wert allein, sondern sie selbst "mit allem Drum und Dran" verarbeitet wird. Da ist die sachlich falsche Verwendung des Begriffs "Variablenobjekt" dem Verständnis einer Closure eher zuträglich, als die Verwendung des sachlich korrekten Begriffs.
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)