Junior
Como funciona o método apply em JavaScript?
sobes.tech IA
Resposta da IA
O método apply é chamado em funções e permite invocar essa função com um valor this definido e argumentos passados na forma de um array (ou de um objeto semelhante a um array).
Aspectos principais:
- Definição de
this: O primeiro argumento do métodoapplydetermina o valor da palavra-chavethisdentro da função chamada. Se passarnullouundefined, em modo não estrito,thisreferenciará o objeto global (por exemplo,windowno navegador ouglobalno Node.js), e em modo estrito, permanecerá comoundefined. - Passagem de argumentos: O segundo argumento é um array (ou um objeto semelhante a um array), cujos elementos serão os argumentos da função chamada, na ordem em que aparecem no array.
Sintaxe:
function.apply(thisArg, argsArray)
thisArg: Valor que será usado comothisao chamar a função.argsArray: Array ou objeto semelhante a um array contendo os argumentos com os quais a função será chamada.
Diferenças com call:
applyaceita os argumentos como um array.callaceita os argumentos como valores separados, listados apósthisArg.
Exemplo de uso:
// Função para calcular o número máximo em um array
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Chamada de método de um objeto com outro contexto `this`
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };
function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
greet.apply(person1, ['Hello', '!']); // Hello, Alice!
gree.apply(person2, ['Hi', '?']); // Hi, Bob?
Usos:
- Passar argumentos de um array para uma função que espera argumentos separados.
- Alterar o contexto
thisao chamar uma função. - Usar com métodos embutidos que esperam múltiplos argumentos (por exemplo,
Math.max,Math.min).