Heim > Web-Frontend > js-Tutorial > Hauptteil

Was sind die Unterschiede zwischen Aufruf, Anwenden und Binden in Javascript?

php中世界最好的语言
Freigeben: 2018-03-14 13:27:06
Original
1450 Leute haben es durchsucht

Dieses Mal bringe ich Ihnen Was sind die Unterschiede zwischen Call, Apply und Bind in Javascript? Werfen wir einen Blick auf die praktischen Fälle. Fügen Sie zunächst das Konzept des strikten Modus hinzu, das in ES5 vorgeschlagen wurde. Schreiben Sie einfach:

, um dem aktuellen Browser mitzuteilen, dass der nächste JavaScript-Code strikt geschrieben wird Modus.

“use strict”
Nach dem Login kopieren


fn.call(); // Im normalen Modus ist dies ein Fenster, im strikten Modus ist dies undefiniert

fn.call(
function fn() { 
console.log(this); 
}
Nach dem Login kopieren
null

); / Im normalen Modus ist dies ein Fenster, im strikten Modus ist dies null
fn.call(undefiniert); // Im normalen Modus ist dies ein Fenster, im strikten Modus ist dies undefiniert Methode anwenden und Methode aufrufen Die Funktionen sind Genau das gleiche. Sie werden verwendet, um das Schlüsselwort this der Methode zu ändern und die Methode auszuführen. Im strikten Modus und im nicht strikten Modus gelten dieselben Regeln für den Fall, dass der erste Parameter null/undefiniert ist Unterschied bei der Übergabe von Parametern der -Funktion
.

Wenn der Aufruf Parameter an fn übergibt, übergibt er die Werte einzeln, aber „apply“ übergibt sie nicht einzeln, sondern denselben Parameterwert, der an fn übergeben wird. Das Einfügen in ein

Array
function fn(num1, num2) {
    console.log(num1 + num2);
    console.log(this);
}fn.call(obj , 100 , 200);fn.apply(obj , [100, 200]);123456
Nach dem Login kopieren
für den Betrieb entspricht auch dem Zuweisen von Werten zu den formalen Parametern von fn nacheinander.

Die Bind-Methode unterscheidet sich geringfügig von „Apply“ und „Call“. Die Bind-Methode ändert dies von fn im Voraus in das gewünschte Ergebnis und bereitet die entsprechenden Parameterwerte vor. Es wird in Zukunft verwendet und direkt ausgeführt Das heißt, bind kann auch die Richtung ändern, wird aber im Gegensatz zu apply und call nicht sofort ausgeführt.

Die erste Codezeile ändert dies nur in fn in obj und übergibt zwei Parameterwerte 1 und 2 an fn, aber die Funktion fn wird zu diesem Zeitpunkt nicht ausgeführt und bind wird ausgeführt . Es wird einen Rückgabewert geben, und dieser Rückgabewert tempFn ist das Ergebnis der Änderung von fn.

var tempFn = fn.bind(obj, 1, 2); 
tempFn();
Nach dem Login kopieren

Hinweis: Die Bindungsmethode ist nicht mit IE6~8 kompatibel.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie auf der chinesischen PHP-Website

Andere

verwandte Artikel!

Empfohlene Lektüre:

So verwenden Sie die geplanten Aufgaben von Spring Boot


Detaillierte Erklärung des Aufrufs in Javascript

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen Aufruf, Anwenden und Binden in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage