Rolf B: Frage zum Wiki-Artikel „classList“

Beitrag lesen

problematische Seite

Hallo Jürgen,

danke - ich hatte die Antwort etwa zeitgleich mit Dir stehen und dann wurde ich vom Computer automatisch ausgeloggt. Futschikato die Antwort.

Was ich da noch schreiben wollte: Es gibt mehrere Wege, Funktionsobjekte in JavaScript zu erzeugen, und im Ergebnis sind sie leicht unterschiedlich.

function foo(x) {
   return x+1;
}
var bar = function(y) {
   return y+1;
};
var who = function what(y) {
   return y+1;
};

var ano = getFunction();


function getFunction() {
   return function() { return 7; };
}

Mal abgesehen von getFunction entstehen hier 4 Variablen, und jede bekommt ein function-Objekt. Alle Variablen sind übrigens überschreibbar.

foo enthält ein function-Objekt, dessen name-Eigenschaft den Wert "foo" bekommen hat.
Bei bar KANN das sein (Chrome), muss aber nicht (Edge). Die function in ano hat definitiv einen leeren Namen

Die function in who ist etwas besonderes. Sie ist mit einem benannten function-Objekt initialisiert worden. Die name-Eigenschaft dieses function-Objekts hat daher den Wert "what", obwohl es in der Variablen "who" steht. Ganz wichtig: eine globale Variable "what" entsteht nicht. Dafür entsteht aber eine LOKALE Variable "what", die im Code dieser function verfügbar ist und die Du benutzen kannst, um innerhalb eines Funktionsaufrufs auf das function-Objekt zuzugreifen. Warum? Hauptsächlich für Rekursionen. Du kannst das Function-Objekt aber auch nutzen, um Dir Aufruf-übergreifend Werte zu merken. Ob das guter Stil ist, ist eine andere Frage 😀

function getNextNumber() {
   getNextNumber.currentValue = (getNextNumber.currentValue || 0) + 1;
   return getNextNumber.currentValue;
}

console.log(getNextNumber(), getNextNumber(), getNextNumber());
// 1, 2, 3
}

Rolf

--
sumpsi - posui - clusi