Qual é a diferença entre call e apply em JavaScript?
Olá, colegas! Comecei a estudar JavaScript e me deparei com os métodos call e apply. Li a documentação, mas não entendi completamente qual é a diferença entre eles. Tenho, por exemplo, um objeto:
```javascript
const user = {
name: 'Ivan',
greet: function(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
};
const admin = {
name: 'Petr'
};
```
Quero chamar o método `greet` em nome do objeto `admin`. Pelo que entendi, ambos os métodos permitem definir `this`. Mas quando tento:
```javascript
user.greet.call(admin, 'Olá', '!'); // funciona
user.greet.apply(admin, ['Olá', '!']); // também funciona
```
A diferença é apenas que `apply` aceita um array de argumentos? Ou existem outras nuances? Isso afeta a performance? Ou há casos em que um método é melhor que o outro? Ficarei grato por uma explicação detalhada com exemplos.
<<>>
Diferença principal: forma de passar argumentos
Você observou corretamente. A diferença chave
No answers yet.
Faça login para deixar uma resposta
Blogs