Funciones call() y apply()

Se podría decir que son la misma función. Lo que cambia es la forma de pasar los argumentos.

Lo mejor es ver el codepen aqui:

var feedback1 = document.getElementById('feedback1');
var feedback2 = document.getElementById('feedback2');
var feedback3 = document.getElementById('feedback3');

var john = {
nombre: 'John',
saluda: function(nombre) {
return this.nombre + ' dice hola a ' + nombre;
}
}

feedback1.innerHTML = john.saluda('Paul');

var paul = {
nombre: 'Paul'
}

feedback2.innerHTML = john.saluda.call(paul,'George');

/* call cambia el objeto con el que se llama al metodo. Como ambos objetos comparten la propiedad nombre y la funcion saluda solo hace referencia a esta propiedad, paul puede coger prestado el metodo a john
*/

/* apply hace los mismo pero solo tiene dos argumentos, el segundo ha de ser un array */

var ringo = {
nombre: 'Ringo'
}

feedback3.innerHTML = john.saluda.apply(ringo,[paul.nombre]);
Funciones call() y apply()

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s