Was ist der Unterschied zwischen call und apply in JavaScript?
Hallo Kollegen! Ich habe angefangen, JavaScript zu lernen und bin auf die Methoden call und apply gestoßen. Ich habe die Dokumentation gelesen, aber nicht ganz verstanden, worin der Unterschied besteht. Ich habe zum Beispiel ein Objekt:
```javascript
const user = {
name: 'Ivan',
greet: function(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
};
const admin = {
name: 'Petr'
};
```
Ich möchte die Methode `greet` im Kontext des Objekts `admin` aufrufen. Soweit ich verstehe, erlauben beide Methoden, `this` zu setzen. Aber wenn ich es versuche:
```javascript
user.greet.call(admin, 'Hallo', '!'); // funktioniert
user.greet.apply(admin, ['Hallo', '!']); // funktioniert auch
```
Ist der einzige Unterschied, dass `apply` ein Array von Argumenten akzeptiert? Oder gibt es noch andere Nuancen? Vielleicht beeinflusst das die Performance? Oder gibt es Fälle, in denen man eine Methode der anderen vorziehen sollte? Ich wäre dankbar für eine klare Erklärung mit Beispielen.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen