apply(), call() und bind()'s image'
Lizenzinfos

2814
Robert's profile picture'
Thema
Thema
Fragen
3
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 Themen (0)
Alle Inhalte auf dieser Seite stehen, soweit nicht anders angegeben, unter der Lizenz Creative Commons Namensnennung 4.0 (CC-BY-4.0). Einzelne Elemente (aus anderen Quellen übernommene Fragen, Bilder, Videos, Textabschnitte etc.) können anderen Lizenzen unterliegen und sind entsprechend gekennzeichnet.