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”
fn.call(); // Im normalen Modus ist dies ein Fenster, im strikten Modus ist dies undefiniert
function fn() { console.log(this); }
); / 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
function fn(num1, num2) { console.log(num1 + num2); console.log(this); }fn.call(obj , 100 , 200);fn.apply(obj , [100, 200]);123456
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();
Hinweis: Die Bindungsmethode ist nicht mit IE6~8 kompatibel.
Andere
verwandte Artikel!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!