Heim > Artikel > Web-Frontend > Die Unterschiede und Prinzipien des Aufrufens, Anwendens und Bindens in js sowie die erweiterte Anwendung von Erweiterungen
Vorwort
Während des Interviewprozesses werden viele neue Fragen auftauchen, die es Ihnen ermöglichen, neues Wissen zu erweitern, und Sie werden auch Punkte entdecken, die Sie in Ihrem Studium übersehen haben.
In einem Vorstellungsgespräch vor zwei Tagen fragte der Interviewer nach dem Unterschied zwischen „Anrufen“, „Bewerben“ und „Binden“. Tatsächlich sollten wir auch verstehen, was der Interviewer mehr fragen möchte, das heißt, was erweitert wird.
call
call ist eine Methode, die von allen Funktionen aufgerufen werden kann, es ist die Methode in Function.prototype
Funktion
Rufen Sie die Funktion
auf, um dies zu ändern, übergeben Sie den Parameter als ersten Parameter
und alle Parameter danach zweiter Parameter
Case
function fn1(){ console.log(1); } function fn2(){ console.log(2); } fn1.call(fn2); //输出 1 fn1.call.call(fn2); //输出 2
Parse :
Die erste Ausgabezeile, genannt fn1
und zeigt this
auf fn2
Die zweite Ausgabezeile, tatsächlich die Ausführung von call()
, beinhaltet den Mechanismus von Function.prototype.call()
. Es behandelt lediglich das Codesegment vor .call()
als Variable und überträgt das übergebene Codesegment Zeigt auf this
, dann zeigt fn1.call auf fn2
, also ist es relativ zu fn2.call()
, außer dass das hier übergebene this
window
mit
function Father(uname,age){ this.uname= uname; this.age=age; } Father.prototype={ constructor:Father, sing:function(){ console.log("唱跳rap"); } } function Son(){ Father.call(this,uname,age) } Son.prototype=new Father();
Function.prototype
in
übergibt
Verwenden Sielet arr=Array.of(2,42,56,89,1,24,56,22) let max=Math.max.apply(Math,arr) console.log(max);
Function.prototype
in
let btns=document.querySelectorAll("button") for(let btn of btns){ btn.onclick=function(){ this.disabled=true; setTimeout(function(){ this.disabled=false; }.bind(this),2000); } }wird der Timer
wird geändert und die Funktion wird nicht aufgerufen. Wenn Sie jedoch die Pfeilfunktion zum Schreiben verwenden, ist dies viel einfacher, da das this
der Pfeilfunktion kontextbezogen ist this
. Dieser Fall soll uns helfen, die Verwendung von this
zu verstehen , also hängen Sie es unten an. Wie man Pfeilfunktionen schreibtbind
let btns=document.querySelectorAll("button") for(let btn of btns){ btn.onclick=function(){ this.disabled=true; setTimeout(()=>{ this.disabled=false; },2000); } }Empfohlenes Tutorial: „
JS-Tutorial“
Das obige ist der detaillierte Inhalt vonDie Unterschiede und Prinzipien des Aufrufens, Anwendens und Bindens in js sowie die erweiterte Anwendung von Erweiterungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!