Perforemos en nuestras mentes y acabemos con eso, de una vez por todas.

Estoy escribiendo este micro post porque la pregunta antes mencionada me ha perseguido durante mucho tiempo y sabía que no era el único. Cada vez que veía a alguien usar alguno de esos tres métodos, tenía que correr a MDN para averiguar qué estaba pasando.
Ya fue suficiente. Sabía que tenía que hacer algo y lo hice. Supuestamente he creado una proverbial bala de plata que puede ayudar a los nuevos desarrolladores de JavaScript.
Descargo de responsabilidad : esta no es una solución teórica, sino una forma realmente peligrosa de recordar la diferencia.La principal causa de confusión entre los métodos call()
y apply()
es cómo pasar los argumentos adicionales además this
. ¿Y por qué tenemos de bind()
todos modos?
Así que aprendamos a distinguir fácilmente los tres.
Aplicar()
apply(this [, [arg1, arg2,...]])
: Llama a una función con un this
valor proporcionado . Se proporcionan más argumentos como una única matriz .
Forma de recordar : “ Un acepta plicar argumentos como un RRay” o “ AA ”
Llamada()
call(this [, arg1, arg2...])
: Llama a una función con un this
. Los argumentos adicionales se proporcionan como una lista separada por comas
Formas de recordar: “Los argumentos de la llamada están separados por comas” o “ CC ”.
Enlazar()
bind(this)
: Devuelve una nueva función cuyo this
valor está vinculado al valor proporcionado.
Formas de recordar: bind () es el único método de los tres que devuelve una nueva función por completo. No llama a la función.
Envolver
Espero que la explicación anterior pueda ayudar a algunos de ustedes. Ciertamente me está ayudando.
¿Tienes otros trucos de memorización relacionados con la programación? Por favor, compártelo con la comunidad, ya que ayudará a todos. Especialmente durante esas entrevistas.
Si tienes alguna consulta o duda, contáctame en Twitter @ rajat1saxena o escríbeme a [email protected]. Recomiende esta publicación, si le gustó, y compártala con su red.