La différence entre les méthodes d'appel, d'application et de liaison de JavaScript

Percons-le dans nos esprits et finissons-en une fois pour toutes.

J'écris ce micro post parce que la question susmentionnée me hante depuis très longtemps et je savais que je n'étais pas la seule. Chaque fois que je voyais quelqu'un utiliser l'une de ces trois méthodes, je devais me précipiter vers MDN pour comprendre ce qui se passait.

Assez c'était assez. Je savais que je devais faire quelque chose et je l'ai fait. J'ai censément créé une solution miracle proverbiale qui peut aider les nouveaux développeurs JavaScript.

Avertissement : Ce n'est pas une solution théorique, mais une façon vraiment pirate de se souvenir de la différence.

La principale cause de confusion entre les méthodes call()et apply()est de savoir comment transmettre les arguments supplémentaires this. Et pourquoi avons-nous de bind()toute façon?

Alors apprenons à distinguer facilement les trois.

Appliquer()

apply(this [, [arg1, arg2,...]]): Appelle une fonction avec une thisvaleur fournie . D'autres arguments sont fournis sous la forme d' un seul tableau .

Manière de se souvenir : " Une pply accepte les arguments comme un A rray" ou " AA "

Appel()

call(this [, arg1, arg2...]): Appelle une fonction avec un fourni this. D'autres arguments sont fournis sous forme de liste séparée par des virgules

Façons de se souvenir: «Les arguments de l'appel sont séparés par des virgules» ou « CC ».

Lier()

bind(this): Renvoie une nouvelle fonction dont la thisvaleur est liée à la valeur fournie.

Façons à retenir: bind () est la seule méthode sur les trois qui renvoie une nouvelle fonction au total. Il n'appelle pas la fonction.

Emballer

J'espère que l'explication ci-dessus pourra aider certains d'entre vous. Cela m'aide certainement.

Avez-vous d'autres astuces de mémorisation liées à la programmation? Veuillez le partager avec la communauté car cela aidera tout le monde. Surtout lors de ces entretiens.

Si vous avez des questions ou des doutes, contactez-moi sur Twitter @ rajat1saxena ou écrivez-moi à [email protected] Veuillez recommander cet article si vous l'avez aimé et partagez-le avec votre réseau.