In JavaScript kann mit bind(), call() und apply() der Kontext (this) einer Funktion gesetzt werden.
Call() und apply()
Call() und apply() verhalten sich sehr änlich: Sie rufen eine Methode auf, wobei sie als ersten Parameter den neuen Kontext einer Methode erwarten.
function Person(name) {
this.name = name;
}
function PersonWithAge(name, age) {
Person.call(this, name);
this.age = age;
}
console.log(new PersonWithAge('Tom', 2).name);
// expected output: Tom
Der wesentliche Unterschied zwischen call() und apply() liegt darin, dass apply() eine Liste von Parametern als Array erlaubt:
function Person(name) {
this.name = name;
}
function PersonWithAge(name, age) {
Person.apply(this, [name]);
this.age = age;
}
console.log(new PersonWithAge('Tom', 2).name);
// expected output: Tom
bind()
Bind() erlaubt es auch den Kontext einer Methode zu setzen, doch statt eine Funktion sofort auszuführen, gibt bind() eine neue Methode zurück.
Untergeordnete Seiten (0)