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:
Szenario 3 und 4:
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!