Heim >Web-Frontend >js-Tutorial >Worauf weist dies in einer JavaScript-Funktion hin?

Worauf weist dies in einer JavaScript-Funktion hin?

清浅
清浅Original
2018-11-27 10:46:432479Durchsuche

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>

Image 1.jpg

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>

Image 2.jpg

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>

Image 3.jpg

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>

Image 1.jpg


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 : &#39;Hello!&#39;
}
a.b();
	</script>


verweist über die Bind-Methode auf den Inhalt im C-Objekt.

Image 4.jpg

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn