Vorwort: Dies ist ein relativ spezielles Schlüsselwort in JavaScript. Sein breites Anwendungsspektrum und seine flexiblen Methoden machen es leistungsstark, aber gleichzeitig ist es dazu bestimmt, schwierig zu verwenden . Als ich anfing, es zu lernen, war ich sehr verwirrt. Ich habe viele Informationen nachgeschlagen, um es vollständig zu verstehen. Dann habe ich das Gelernte geordnet und auf leicht verständliche Weise ausgedrückt. Es kann als Lernnotiz und als Referenz für Kinder in Not verwendet werden^_^
Was ist das?
Die Bedeutung dieses Schlüsselworts ist klar und spezifisch, das heißt, es bezieht sich auf das aktuelle Objekt. Dies bedeutet, dass dies nur unter bestimmten relativen Umständen zutrifft.
Dies ist in drei Situationen unterteilt: globales Objekt, aktuelles Objekt oder ein beliebiges Objekt; die Beurteilung, in welcher Situation es sich befindet, hängt vollständig davon ab, wie die Funktion aufgerufen wird. Die Hauptfunktionsaufrufe in JavaScript haben die folgenden Methoden:
Wird als normale Funktion aufgerufen
Wird als Objektmethode aufgerufen
Wird als Konstruktor aufgerufen
Verwenden Sie „apply“ oder „call“, um
1. Aufruf als normale Funktion
------Diese Aufrufmethode ist ein globaler Aufruf und bezieht sich hier auf den globalen Aufruf Objekt
function test(){ this.a = 5; alert(this.a); alert(this); } test(); // 5 [object Window]
Wie oben gezeigt: Für eine global definierte Funktion ist der Eigentümer der Funktion die aktuelle Seite, bei der es sich um das Fensterobjekt handelt , also example() Das aufrufende Objekt ist Window, also stellt dies hier Window dar
Eine andere Möglichkeit, es zu schreiben:
var a = 5; function test(){ var a = 10; alert(this.a); } test(); //5
Wie oben gezeigt: Eine Variable a wird ebenfalls innerhalb der Funktion test() deklariert, aber das Ergebnis des Aufrufs von test() ist 5, was bedeutet, dass diese innerhalb der Funktion das globale Objekt darstellt, also Window
Anders ausgedrückt:
var a = 5; function test(){ this.a = 10; } test(); alert(a); //10
Wie oben gezeigt: Die Funktion test() wird aufgerufen und der Wert der globalen Variablen a wird geändert. Dies zeigt an, dass dies zu diesem Zeitpunkt das globale Objekt darstellt.
2. Aufruf als Objektfunktion
------Wenn eine Funktion von einem Objekt aufgerufen wird, zeigt dies auf das Objekt
var name="张三"; var person={ name:"李四", showName:function(){ alert(this.name); } } person.showName(); //输出 李四 var other=person.showName; other(); //输出 张三
Wie oben gezeigt: Das Ergebnis der Ausführung von person.showName() ist Li Si, was darauf hinweist, dass dies in showName zu diesem Zeitpunkt auf Person verweist; >Nach der Zuweisung von person.showName zu other kann es als Attribut des Fensterobjekts betrachtet werden, da other eine globale Variable ist. Wenn also other() aufgerufen wird, entspricht dies dem Aufruf von window.other(), sodass dies auf das Fenster verweist und das Ausgabeergebnis Zhang San ist.
Wenn es also als Funktionsobjekt aufgerufen wird, ist dies zeigt auf das Objekt des Aufrufs.
3. Rufen Sie
als Konstruktor auf ------Der Konstruktor soll über diese Funktion ein neues Objekt generieren, das auf dieses neue Objekt <🎜 verweist >
function animal(){ this.name = "豆豆"; } var dog = new animal(); alert(dog.name); // 输出 豆豆
4. Verwenden Sie apply oder call, um
aufzurufen. ------apply() ist eine Methode des Funktionsobjekts. Sie wendet eine Methode eines Objekts an und verwendet eine andere Objekt ersetzt das aktuelle Objekt.
var a = "张三"; function test(){ alert(this.a); } var b = {}; b.a = "李四"; b.n = test; b.n(); //李四 b.n.apply(); //张三 b.n.apply(b); //李四
b.n.apply----Wenn der Parameter von apply() leer ist, gibt es kein Objekt, das das aktuelle Objekt ersetzt, und das globale Objekt wird verwendet standardmäßig zeigt dies auf window , das Ergebnis ist Zhang San; Li Si
(Verweis auf diesen Artikel Ich habe Online-Informationen und einige Bücher gelesen. Wenn es Fehler gibt, können Sie diese gerne darauf hinweisen und diese werden rechtzeitig korrigiert. O(∩_∩)O )
Zusammenfassung:
In diesem Artikel wird JavaScript vorgestellt. Die Beispiele für die Bedeutung dieses Schlüsselworts in verschiedenen Situationen sind sehr einfach und können zum tieferen Verständnis beitragen. Obwohl dies nur ein kleines Konzept in JavaScript ist, können wir es nutzen, um die Ausführungsumgebung von Funktionen in JavaScript zu verstehen. Wenn wir die entsprechenden Kenntnisse vollständig beherrschen, können wir problemlos objektorientierte JavaScript-Programme schreiben. Abschließend möchte ich Ihnen fürs Zuschauen danken.
Das Obige ist der Inhalt der Erforschung dieses Geheimnisses in Javascript. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!