Heute werde ich einen wichtigen Wissenspunkt in JavaScript mit Ihnen teilen. Er hat einen gewissen Referenzwert und ich hoffe, dass er für das Lernen aller hilfreich sein wird.
Wenn wir etwas über das Schlüsselwort „this“ erfahren, ist uns unklar, worauf es sich in der Funktion bezieht und wie es verwendet wird. Die Details dazu stelle ich Ihnen heute vor
[Empfohlene Kurse: JavaScript-Tutorial]
Kontext und diese Schlüsselwörter
In JavaScript hat eine Funktion ihren eigenen Ausführungskontext. Achten Sie hier besonders darauf, dass es beim Ausführungskontext einer Funktion nicht darum geht, wie sie deklariert wird oder was die Funktion tut, sondern darum, wie sie aufgerufen wird Wir werden es im Code verwenden, wenn wir diesen Ausführungskontext aufrufen. Wenn innerhalb einer Funktion darauf zugegriffen wird, wird tatsächlich auf deren Ausführungskontext zugegriffen.
Die Methode zum Aufrufen der Funktion ist dieselbe.
Der Kontext hängt von der Methode zum Aufrufen der Funktion ab. Wir können die Funktion des Kontexts in 4 aufrufen Verschiedene Arten, daher gibt es auch vier Arten davon. Verschiedene Zeiger
1 Ein grundlegender Funktionsaufruf
2. Verwendung des Kontextobjekts zum Aufrufen der Funktion, auch implizite Bindung genannt.
3. Verwenden Sie call() oder rufen Sie die Funktion apply() auf, auch als explizite Bindung bekannt.
4. Bindung über die bind()-Methode
Grundlegender Funktionsaufruf
Grundlegender Funktionsaufruf ist der einfachste Weg, eine Funktion aufzurufen
Beispiel:
<script type="text/javascript"> var name="张三"; function student(){ console.log(this.name); } student(); </script>
In diesem Beispiel ist zu sehen, dass student() die Funktion aus dem globalen Bereich aufruft, daher bezieht sich dies hier auf den globalen Bereich. Das Ausgabeergebnis ist also „张三“.
Implizite Bindung
Wenn eine Funktion in einem Objekt „enthalten“ ist, sagen wir, dass dies die Funktion ist ist implizit gebunden An dieses Objekt gebunden
<script type="text/javascript"> var student={ name:"张三", obj:function(){ console.log(this.name) } } student.obj(); </script>
Obwohl die obj-Funktion im Objekt platziert ist, unterscheidet sie sich von außen nicht, nur weil sie innerhalb des Objekts definiert ist. Unter impliziter Bindung kann obj weiterhin auf die a-Eigenschaft im Student-Objekt zugreifen.
Anzeigebindung
kann die Methodenaufrufe call() oder apply() verwenden Funktion und ihr Ausführungskontext ist explizit an das Objekt gebunden. Aufruf und Anwendung können dies ändern, um auf
zu verweisen. Beispiel: Wenn call () oder apply () nicht verwendet wird,
<script type="text/javascript"> var name="张三"; var obj = { name:"李四", fun:function(){ console.log(this.name);}} obj.fun(); </script>
Verwenden Sie call(), um diesen Punkt auf das Fenster zu verweisen
<script type="text/javascript"> var name="张三"; var obj = { name:"李四", fun:function(){ onsole.log(this.name);}} obj.fun.call(window); </script>
bind()-Bindung
bind() erstellt eine Funktion. Der Wert dieses Objekts im Funktionskörper wird an den Wert des ersten an bind() übergebenen Parameters gebunden Gibt nur eine Funktion zur Ausführung zurück. Die Funktion
<script type="text/javascript"> var a = { b : function(){ var func = function(){ console.log(this.c); } func.bind(this)(); }, c : 'Hello!' } a.b(); </script>
verweist über die Bind-Methode auf den Inhalt im C-Objekt.
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Aus dem obigen Artikel können wir ersehen, dass jeder, der dies aufruft, auf das Fenster verweist Die Methoden call(), apply() und bind() können den Zeiger davon ändern.
Das obige ist der detaillierte Inhalt vonWorauf weist dies in einer JavaScript-Funktion hin?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!