Quiz

Qual é a diferença entre `.call` e `.apply`?

Topics
JavaScript

.call e .apply são usados para invocar funções e o primeiro parâmetro será usado como o valor de this dentro da função. No entanto, .call recebe argumentos separados por vírgulas como os próximos argumentos enquanto .apply recebe um array de argumentos como o próximo argumento. Uma maneira fácil de lembrar este é C para chamada e parâmetros separados por vírgulas e A para 'apply' e um array de argumentos.

function add(a, b) {
return a + b;
}
console.log(add.call(null, 1, 2)); // 3
console.log(add.apply(null, [1, 2])); // 3

Exercícios

Verifique seu entendimento
Beta
Verifique seu entendimento Exercício
Verifique seu entendimento Exercício

What does this code log?

function describe(a, b) {
return `${this.prefix}:${a + b}`;
}
const context = { prefix: 'sum' };
console.log(describe.call(context, 2, 3), describe.apply(context, [4, 5]));