O método JavaScript Function call () chama uma função com um determinado valor e argumentos fornecidos individualmente.
A sintaxe do call()
método é:
func.call(thisArg, arg1,… argN)
Aqui func
está uma função.
Parâmetros call ()
O call()
método inclui:
thisArg
- O valorthis
fornecido para a chamada parafunc
.arg1,… argN
(opcional) - Argumentos para a função.
Valor de retorno da chamada ()
- Retorna o resultado da chamada da função com o
this
valor e os argumentos especificados .
Ao usar call()
, podemos usar as funções pertencentes a um objeto a serem atribuídas e chamadas para um objeto diferente.
Exemplo 1: usando 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.
Resultado
Meu nome é Judah undefined. Eu tenho 26 anos.
Exemplo 2: Usando call () para construtores de cadeia
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);
Resultado
Harry 5 Hiss Arnold 8 Neigh
Nota: A diferença entre call()
e apply()
é que call()
aceita uma lista de argumentos, enquanto apply()
aceita uma única matriz de argumentos.
Leitura recomendada: função JavaScript se aplica ()