Wann sollte ich in Javascript OO das Schlüsselwort this
verwenden?
Wenn ich eine Methode einer Klasse von einer anderen Methode derselben Klasse aufrufen möchte, sollte ich dann this
oder nur den Namen der Funktion verwenden? ZB ist das richtig?
Wenn es zu "objektorientiertem" JavaScript kommt, ist hier ein netter Führer Mark Dickinson hier auf SO verbunden mit: Private Mitglieder in JavaScript . Es geht detailliert auf andere Dinge ein, die Sie jetzt nicht wirklich brauchen, aber wenn Sie einmal verstanden haben, wie JavaScript funktioniert, werden Sie sehen, dass es sich ziemlich von Ihrer normalen objektorientierten Sprache unterscheidet, wenn es um Dinge wie this
geht. bedeutet wirklich.
Ich würde sagen, dass Sie in Ihrem Fall definitiv this
verwenden sollten, aber vielleicht sollten Ihre Funktionen im prototype
-Teil Ihrer "Klasse" sein (dies vermeidet die Neudefinition der Funktion jedes Mal, wenn eine neue Instanz erstellt wird .)
Um die vorherige Antwort von @ tj111 zu betonen und nachzuempfinden, empfehle ich Ihnen, dies zu lesen. Um das Funktionsumfangsverständnis besser zu verstehen.
In diesem speziellen Fall ist es am besten, eine selbstreferenzierende Variable an Stelle von this
zu verwenden, um Verwirrung und Kopfschmerzen in Funktionen zu vermeiden.
Der Grund dafür ist, dass, da alles in JavaScript ein Objekt ist, das Schlüsselwort this
in einer Funktion auf die Elternfunktion verweist. Indem Sie eine Variable in einem bestimmten Bereich definieren, behält Ihre garantierte Variable ihren Gültigkeitsbereich.
In einem anderen Beitrag zum Thema "Funktions-Aliasing" in JavaScript habe ich anhand von Beispielen ausführlich erklärt, wie "das" in JavaScript funktioniert. Ich denke, es könnte dir nützlich sein.
Bitte überprüfen Sie: JavaScript-Funktion Aliasing scheint nicht arbeiten
Tags und Links javascript scope oop