Middle
O que são os métodos call, apply e bind em JavaScript?
sobes.tech IA
Resposta da IA
call, apply e bind são métodos disponíveis para todas as funções em JavaScript. São usados para gerir o contexto de execução da função (o valor de this).
- call: Chama a função com um valor
thisespecificado e argumentos separados.// Exemplo de uso de call function greet() { return "Olá, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Resultado: Olá, Ivan! - apply: Chama a função com um valor
thisespecificado e argumentos passados em forma de array ou pseudoarray.// Exemplo de uso de apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Resultado: 18 - bind: Cria uma nova função que, ao ser chamada, tem um valor
thisfixado. A função original não é chamada imediatamente.// Exemplo de uso de bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Resultado: undefined (this aponta para o objeto global) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Resultado: 42 (this está ligado a module)
Principais diferenças:
| Método | Passagem de argumentos | Chamada da função | Valor de retorno |
|---|---|---|---|
| call | Separados (por vírgula) | Imediatamente | Resultado da função |
| apply | Em forma de array ou pseudoarray | Imediatamente | Resultado da função |
| bind | Separados (por vírgula) | Não imediatamente | Nova função com this ligado |