Heim >Web-Frontend >js-Tutorial >Wie verhält sich das Schlüsselwort „this' in JavaScript-Objektliteralen?

Wie verhält sich das Schlüsselwort „this' in JavaScript-Objektliteralen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 21:48:21624Durchsuche

How Does the `this` Keyword Behave in JavaScript Object Literals?

Verhalten des Schlüsselworts „this“ in Javascript-Objektliteralen

Innerhalb eines Objektliterals dient das Schlüsselwort „this“ als Platzhalter für das Objekt selbst. Sein Verhalten kann jedoch je nach der Bedingung, in der es aufgerufen wird, variieren.

In Ihrem Code:

var MyDate = function(date) {
    this.date = date;
};

var obj1 = {
    foo: new Date(),
    bar: new MyDate(this.foo)  //  this.foo is undefined
};

var obj2 = {};
obj2.foo = new Date();
obj2.bar = new MyDate(this.foo);  //  this.foo is undefined

var obj3 = {
    foo: new Date(),
    bar: new MyDate(obj3.foo)
};

var obj4 = {};
obj4.foo = new Date();
obj4.bar = new MyDate(obj4.foo);

„Diese“ Bindung verstehen

Das Schlüsselwort „this“ von Javascript weist eine späte Bindung auf, was bedeutet, dass sein Wert erst bestimmt wird, wenn die Funktion aufgerufen wird. In Ihrem Fall:

Szenario 1 und 2:

  • In „obj1“ und „obj2“ das Schlüsselwort „this“ innerhalb des „new MyDate“ Die Funktion bezieht sich auf das globale Objekt (d. h. „Fenster“), da sie nicht als Methoden eines bestimmten Objekts aufgerufen werden. Da es im globalen Objekt keine Eigenschaft mit dem Namen „foo“ gibt, führt dies zu einem undefinierten Fehler.

Szenario 3 und 4:

  • In „obj3“ und „obj4“ verweist das Schlüsselwort „this“ erfolgreich auf die jeweiligen Objekte, da die Funktion „new MyDate“ als Methode dieser Objekte aufgerufen wird. Daher greift „this.foo“ korrekt auf die Eigenschaft „foo“ in jedem Objekt zu.

Fazit

Das Verhalten des Schlüsselworts „this“ innerhalb des Objekts Literale hängen vom Kontext ab, in dem die Funktion aufgerufen wird. Wenn es nicht explizit an ein Objekt gebunden ist, wird standardmäßig das globale Objekt verwendet. Wenn es jedoch als Methode eines Objekts aufgerufen wird, verweist es auf dieses spezifische Objekt und stellt so den ordnungsgemäßen Zugriff auf die Eigenschaften und Methoden des Objekts sicher.

Das obige ist der detaillierte Inhalt vonWie verhält sich das Schlüsselwort „this' in JavaScript-Objektliteralen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn