El método JavaScript Function call () llama a una función con un valor dado y argumentos proporcionados individualmente.
La sintaxis del call()
método es:
func.call(thisArg, arg1,… argN)
Aquí func
hay una función.
call () Parámetros
El call()
método incluye:
thisArg
- El valor dethis
proporcionado para la llamada afunc
.arg1,… argN
(opcional): argumentos para la función.
Valor de retorno de call ()
- Devuelve el resultado de llamar a la función con el
this
valor y los argumentos especificados .
Al usar call()
, podemos usar las funciones que pertenecen a un objeto para ser asignadas y llamadas para un objeto diferente.
Ejemplo 1: usar call ()
function greet() ( const string = `My name is $(this.firstName) $(this.secondName). I am $(this.age) years old.`; console.log(string); ) const human = ( firstName: "Judah", lastName: "Parker", age: 26, ); greet.call(human); // My name is Judah undefined. I am 26 years old.
Salida
Mi nombre es Judá indefinido. Tengo 26 años.
Ejemplo 2: uso de call () para encadenar constructores
function Animal(name, age) ( this.name = name; this.age = age; ) function Horse(name, age) ( Animal.call(this, name, age); this.sound = "Neigh"; ) function Snake(name, age) ( Animal.call(this, name, age); this.sound = "Hiss"; ) const snake1 = new Snake("Harry", 5); console.log(snake1.name, snake1.age, snake1.sound); const horse1 = new Horse("Arnold", 8); console.log(horse1.name, horse1.age, horse1.sound);
Salida
Harry 5 Hiss Arnold 8 Neigh
Nota: La diferencia entre call()
y apply()
es que call()
acepta una lista de argumentos, mientras que apply()
acepta una única matriz de argumentos.
Lectura recomendada: Aplicar función de JavaScript ()