call() y apply() en JavaScript

 

 

 

Descubra cómo utilizar call() y apply() y sus diferencias en JavaScript

call() y apply() son dos funciones que JavaScript ofrece para realizar una tarea muy específica: llamar a una función y establecer su thisvalor.

Consulta mi guía “esta” para conocer todos los detalles sobre esta variable en particular

Una función puede utilizar el thisvalor para muchos casos de uso diferentes. El problema es que lo proporciona el entorno y no se puede cambiar desde el exterior, excepto cuando se utilizan call()o apply().

Al utilizar esos métodos, puede pasar un objeto adicional que se utilizará como thisen la función invocada.

 

Estas funciones realizan lo mismo, pero tienen una diferencia. En call()puedes pasar los parámetros de la función como una lista de parámetros separados por comas, tomando tantos parámetros como necesites, mientras que en apply()pasas una única matriz que contiene los parámetros:

const car = { brand: 'Ford', model: 'Fiesta'}const drive = function(from, to, kms) { console.log(`Driving for ${kms} kilometers from ${from} to ${to} with my car, a ${this.brand} ${this.model}`)}drive.call(car, 'Milan', 'Rome', 568)drive.apply(car, ['Milan', 'Rome', 568])

Tenga en cuenta que al usar funciones de flecha this no está limitado, por lo que este método solo funciona con funciones regulares.

Tips para principiantes de JavaScript




Tal vez te puede interesar:

  1. Cómo generar un número aleatorio entre dos números en JavaScript
  2. Cómo esperar el evento DOM listo en JavaScript simple
  3. Cómo determinar si una fecha es hoy en JavaScript
  4. Cómo contar el número de propiedades en un objeto JavaScript

call() y apply() en JavaScript

call() y apply() son dos funciones que JavaScript ofrece para realizar una tarea muy específica: llamar a una función y establecer su thisvalor. Descubra có

programar

es

2025-01-17

 

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences