Der Unterschied zwischen den Aufruf-, Anwendungs- und Bindemethoden von JavaScript

Lassen Sie es uns in unseren Kopf bohren und ein für alle Mal damit fertig werden.

Ich schreibe diesen Mikro-Beitrag, weil mich die oben genannte Frage sehr lange verfolgt hat und ich wusste, dass ich nicht der einzige war. Jedes Mal, wenn ich jemanden sah, der eine dieser drei Methoden anwendete, musste ich zu MDN eilen, um herauszufinden, was los war.

Genug war genug. Ich wusste, dass ich etwas tun musste und ich tat es. Ich habe angeblich eine sprichwörtliche Silberkugel geschaffen, die neuen JavaScript-Entwicklern helfen kann.

Haftungsausschluss : Dies ist keine theoretische Lösung, sondern eine wirklich hackige Art, sich an den Unterschied zu erinnern.

Die Hauptursache für Verwirrung zwischen den Methoden call()und apply()ist die Übergabe der zusätzlichen Argumente this. Und warum haben wir überhaupt bind()?

Lernen wir also, wie man die drei leicht voneinander unterscheidet.

Anwenden()

apply(this [, [arg1, arg2,...]]): Ruft eine Funktion mit einem angegebenen thisWert auf. Weitere Argumente werden als einzelnes Array bereitgestellt .

Art und Weise, sich zu erinnern : " Eine Person akzeptiert Argumente als A- Rray" oder " AA "

Anruf()

call(this [, arg1, arg2...]): Ruft eine Funktion mit einem bereitgestellten auf this. Weitere Argumente werden als durch Kommas getrennte Liste bereitgestellt

Möglichkeiten zum Erinnern: "Die Argumente des Anrufs werden durch Kommas getrennt" oder " CC ".

Binden()

bind(this): Gibt eine neue Funktion zurück, deren thisWert an den angegebenen Wert gebunden ist.

Erinnerungsmöglichkeiten: bind () ist die einzige der drei Methoden, die insgesamt eine neue Funktion zurückgibt. Die Funktion wird nicht aufgerufen.

Einpacken

Ich hoffe, die obige Erklärung könnte einigen von Ihnen da draußen helfen. Es hilft mir auf jeden Fall.

Haben Sie andere Tricks zum Auswendiglernen im Zusammenhang mit der Programmierung? Bitte teile es mit der Community, da es allen helfen wird. Besonders während dieser Interviews.

Wenn Sie Fragen oder Zweifel haben, melden Sie sich bei Twitter @ rajat1saxena oder schreiben Sie mir unter [email protected] Bitte empfehlen Sie diesen Beitrag, wenn er Ihnen gefallen hat, und teilen Sie ihn mit Ihrem Netzwerk.