Text
Text
Fragen
3
Feed
Analytics

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)