Heim > Artikel > Web-Frontend > Detaillierte Erklärung zur Verwendung der Funktionsbindungsmethode in Javascript
Function.prototype.bind()
Die Bindungsmethode wird verwendet, um diesen Zeiger innerhalb der Funktion (den Bereich, in dem er ausgeführt wird) anzugeben und dann gibt eine neue Funktion zurück. Die Bind-Methode führt eine Funktion nicht sofort aus.
var keith = { a: 1, count: function() { console.log(this.a++); } }; keith.count(); //1 keith.count(); //2 keith.count(); //3
Wenn this.a im obigen Code auf die a-Eigenschaft innerhalb des Keith-Objekts zeigt, wenn diese Methode einer anderen Variablen zugewiesen ist, it wird aufgerufen, wenn es aufgerufen wird. Etwas ist schief gelaufen.
var keith = { a: 1, count: function() { console.log(this.a++); } }; var f = keith.count; f(); //NaN
Wenn im obigen Code die Zählmethode der f-Variablen zugewiesen ist, dann zeigt dieses Objekt nicht mehr auf das Keith-Objekt, sondern auf das Fenster Objekt. Und window.a ist standardmäßig undefiniert. Nach der Inkrementierungsoperation ist undefiniert++ gleich NaN.
Um dieses Problem zu lösen, können Sie die Bindungsmethode verwenden, um dies im Keith-Objekt an das Keith-Objekt zu binden, oder es direkt aufrufen.
var f = keith.count.bind(keith); f(); //1 f(); //2 f(); //3 keith.count.bind(keith)() //1 keith.count.bind(keith)() //2 keith.count.bind(keith)() //3
Natürlich kann dies auch an andere Objekte gebunden werden.
var obj = { a: 100 }; var f = keith.count.bind(obj); f(); //100 f(); //101 f(); //102
Ähnlich können wir auch Parameter an die Bindungsmethode übergeben. Wenn der erste Parameter null oder undefiniert ist oder dies, zeigt dieses Objekt innerhalb der Funktion die globale Umgebung; die zweite ist der beim Aufruf erforderliche Parameter, und die Form der Parameterübergabe ist dieselbe wie bei der Aufrufmethode.
function keith(a, b) { return a + b; } console.log(keith.apply(null,[1,4])); //5 console.log(keith.call(null,1,4)); //5 console.log(keith.bind(null, 1, 4)); //keith() console.log(keith.bind(null, 1, 4)()); //5
Im obigen Code können Sie den Unterschied zwischen call, apply und bind sehen: Die Methoden call und apply werden unmittelbar nach dem Aufruf ausgeführt. Nach dem Bind-Aufruf kehrt es zur ursprünglichen Funktion zurück, die erneut aufgerufen werden muss , was ein bisschen wie ein Abschluss
istDas obige ist der detaillierte Inhalt vonDetaillierte Erklärung zur Verwendung der Funktionsbindungsmethode in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!