Avatar ·

¿Cuál es la diferencia entre call y apply en JavaScript?

¡Hola, colegas! Empecé a estudiar JavaScript y me topé con los métodos call y apply. Leí la documentación, pero no terminé de entender cuál es su diferencia. Tengo, digamos, un objeto: ```javascript const user = { name: 'Iván', greet: function(greeting, punctuation) { console.log(`${greeting}, ${this.name}${punctuation}`); } }; const admin = { name: 'Pedro' }; ``` Quiero llamar al método `greet` en nombre del objeto `admin`. Según entiendo, ambos métodos permiten establecer `this`. Pero cuando pruebo: ```javascript user.greet.call(admin, 'Hola', '!'); // funciona user.greet.apply(admin, ['Hola', '!']); // también funciona ``` ¿La diferencia es solo que `apply` acepta un array de argumentos? ¿O hay otros matices? ¿Quizás afecta el rendimiento? ¿O hay casos en los que un método es mejor que el otro? Agradecería una explicación detallada con ejemplos. <<>>

Diferencia principal: forma de pasar argumentos

Has notado correctamente. La diferencia clave es