Die Einführung zu call() auf der offiziellen Website von Mozilla lautet:
Call()-Parameter
thisArg
Die call()-Methode in Javascript
Achten Sie nicht auf die komplizierten Erklärungen oben und beginnen Sie den Prozess Schritt für Schritt.
Instanz der Call()-Methode
Also habe ich noch ein „Hello, World“ geschrieben:
Als nächstes schauen wir uns ein weiteres Beispiel an.
print.call(obj, „Hallo“, „Welt“);
Nur hier ist das, was wir übergeben, noch undefiniert, da das Undefinierte im vorherigen Beispiel darauf zurückzuführen ist, dass ein Parameter übergeben werden muss. Dies spiegelt nicht wirklich die Verwendung von call wider. Schauen wir uns ein besseres Beispiel an.
var h={p1:"hello", p2:"world", print:print};
h.print("fd");
var h2={p1:"hello", p2:"world"};
print.call(h2, "nothing");
Aufrufen bedeutet, die Methoden und Objekte anderer Leute auszuleihen, um sie aufzurufen, genau wie das eigene Aufrufen. Wenn in h.print die Funktion als Methode aufgerufen wird, zeigt diese auf das entsprechende Objekt. Es ist nur so, dass wir in diesem Beispiel nicht verstanden haben, ob h2 print oder print h2 heißt. Deshalb habe ich Mozillas Beispiel zitiert
wenn (Preis < 0)
throw RangeError('Produkt „‘name‘“ mit negativem Preis kann nicht erstellt werden‘);
Geben Sie dies zurück;
}
Funktion Essen(Name, Preis) {
Product.call(this, name, price);
This.category = 'food';
}
Food.prototype = neues Produkt();
var-Käse = neues Lebensmittel('feta', 5);
console.log(cheese);
var h2= function(no){
This.p1 = "Hallo";
This.p2 = "world";
Print.call(this, „nothing“);
};
h2();
h2 fungiert hier als Empfänger zum Aufrufen der Funktion print. Wie im Food-Beispiel können Sie innerhalb eines untergeordneten Konstruktors die Vererbung implementieren, indem Sie die Aufrufmethode des übergeordneten Konstruktors aufrufen.
Die Vorteile der Call-Methode werden in „Effektives JavaScript“ vorgestellt.
1. Verwenden Sie die Aufrufmethode, um den Empfänger so anzupassen, dass er die Funktion aufruft.
2. Verwenden Sie die Aufrufmethode, um Methoden aufzurufen, die im angegebenen Objekt nicht vorhanden sind.
3. Verwenden Sie die Call-Methode, um Funktionen höherer Ordnung zu definieren, die es Benutzern ermöglichen, Empfänger für die Callback-Funktion anzugeben.