Wann verwenden Sie dies in Javascript OO?

8

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?

%Vor%     
Click Upvote 17.07.2009, 16:56
quelle

6 Antworten

6

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 .)

    
Blixt 17.07.2009, 17:19
quelle
0

Um die vorherige Antwort von @ tj111 zu betonen und nachzuempfinden, empfehle ich Ihnen, dies zu lesen. Um das Funktionsumfangsverständnis besser zu verstehen.

    
Artem Barger 17.07.2009 17:12
quelle
0

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.

%Vor%

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.

    
tj111 17.07.2009 16:59
quelle
0

Die richtige Version ist diejenige, die beim Versuch, die Funktion aufzurufen, keinen Fehler meldet. Wenn Sie this weglassen, erhalten Sie eine ReferenceError Ausnahme.

    
sth 19.07.2009 03:59
quelle
0

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

    
SolutionYogi 21.07.2009 23:08
quelle

Tags und Links