Heim > Artikel > Web-Frontend > Unterschiede in der Verwendung von apply, call und bind in Javascript_Grundkenntnisse
In JS werden diese drei verwendet, um den Sinn dieses Objekts der Funktion zu ändern.
Bevor wir über die Unterschiede sprechen, fassen wir die Gemeinsamkeiten zwischen den drei zusammen:
1. Sie werden alle verwendet, um den Punkt dieses Objekts der Funktion zu ändern.
2. Der erste Parameter ist das Objekt, auf das dies zeigt.
3. Sie können nachfolgende Parameter verwenden, um Parameter zu übergeben.
Was ist also der Unterschied zwischen ihnen? Schauen wir uns zunächst ein Beispiel an.
var xw = { name : "小王", gender : "男", age : 24, say : function() { alert(this.name + " , " + this.gender + " ,今年" + this.age); } } var xh = { name : "小红", gender : "女", age : 18 } xw.say();
An sich gibt es nicht viel zu sagen. Der abgebildete muss dieses Jahr Xiao Wang sein, männlich, 24.
So verwenden Sie die Say-Methode von xw, um die Daten von xh anzuzeigen.
Für einen Anruf können Sie Folgendes tun:
1.xw.say.call(xh);
Um sich zu bewerben, können Sie Folgendes tun:
1.xw.say.apply(xh);
Und für bind muss es so sein:
1.xw.say.bind(xh)();
Wenn Sie xw.say.bind(xh) direkt schreiben, erhalten Sie keine Ergebnisse. Sehen Sie den Unterschied? Sowohl call als auch apply sind direkte Aufrufe von Funktionen, und die bind-Methode gibt immer noch eine Funktion zurück, sodass Sie sie später mit () aufrufen müssen.
Was ist also der Unterschied zwischen Anruf und Bewerbung? Schreiben wir das Beispiel ein wenig um.
var xw = { name : "小王", gender : "男", age : 24, say : function(school,grade) { alert(this.name + " , " + this.gender + " ,今年" + this.age + " ,在" + school + "上" + grade); } } var xh = { name : "小红", gender : "女", age : 18 }
Sie können sehen, dass die Say-Methode zwei weitere Parameter hat. Wir übergeben die Parameter über die Call/Apply-Parameter.
Dies ist bei Anruf
1.xw.say.call(xh,"Experimentelle Grundschule","Sechste Klasse");
Und für die Bewerbung ist es so
1.xw.say.apply(xh,["Experimental Primary School","Sixth Grade"]);
Sehen Sie den Unterschied? Die Parameter nach dem Aufruf entsprechen eins zu eins der Methode say, während der zweite Parameter von apply ein Array ist. Die Elemente im Array entsprechen eins zu eins der Methode say. Das ist der größte Unterschied zwischen den beiden.
Wie übergibt bind also Parameter? Es kann Parameter wie call übergeben.
1.xw.say.bind(xh,"Experimental Primary School","Sixth Grade")();
Da bind aber immer noch eine Funktion zurückgibt, können wir beim Aufruf auch Parameter übergeben.
1.xw.say.bind(xh)("Experimentelle Grundschule","Sechste Klasse");
Die Unterschiede in der Verwendung von Apply, Call und Bind im obigen Javascript sind alle vom Herausgeber geteilten Inhalte. Ich hoffe, dass es Ihnen eine Referenz geben kann, und ich hoffe, dass Sie Script Home unterstützen.