dedlfix: Frage zum Wiki-Artikel „JavaScript“

Beitrag lesen

problematische Seite

Tach!

In der ersten Variante erzeugt der Teil ... zunächst eine ungebundene Referenz

Dem schließe ich mich nicht an. Er erzeugt sie nicht. Er liest sie einfach aus dem Objekt.

Das ist für mich dasselbe nur anders formuliert.

Das ist eine technische Notwendigkeit, um das bind() nutzen zu können, und wäre dann nötig, wenn lightsInputElement die Methode stepDown nicht hätte.

Hä? Wenn es die nicht hätte, wäre eine Bindung von lightsInputElement als this wenig sinnvoll. lightsInputElement hat HTMLInputElement als Prototyp und damit schaut lightsInputElement.stepDown zuerst, ob das Objekt selbst die Methode enthält, und geht danach die Prototypkette durch.

Ja, im vorliegenden Fall hat lightsInputElement über die Prototype-Kette eine stepDown Funktion. Deswegen ist diese Variante ja hier auch nicht notwendig. Ich meinte, dass diese Variante bei Konstrukten verwendet werden müsste, bei dem das nicht der Fall ist, zum Beispiel einer statischen Funktion einer Klasse, die auf ein this zugreift, das erst zur Laufzeit gebunden wird.

Direkt auf den Prototypen zuzugreifen kann nur dann nötig werden, wenn Du davon ausgehst, dass irgendwer eine stepDown-Methode direkt ans Objekt geklebt hat und Du definitiv die Prototyp-Methode willst.

Um für den vorliegenden Fall ein solches Konstrukt zu verwenden, müsste ich über den Prototype gehen, was aber nur unnötig umständlich ist, weil es auch direkt geht.

dedlfix.