Der Code lautet wie folgt:
var doubling=function(x){
return x*2;
var obj={
val:100,
};
Im Funktionsaufrufmodus ist dies an das globale Objekt gebunden. Diese Situation kann sich auch widerspiegeln, wenn die Eigenschaften und Methoden des Objekts initialisiert werden. Fügen Sie nun Folgendes für ojb hinzu:
Code kopieren Der Code lautet wie folgt:
var obj={val:100,
prop:function(){
var that=this;
document .write( 'name: '+that+'; type: '+typeof(that)+'
');
return doubling(
}(),
get_prop: function(){
var that=this;
document.write('name: '+that+'; type: '+typeof(that)+'
'); 🎜>return doubling(that.val);
},
};
prop verwendet eine anonyme Funktion, die ausgeführt wird und erwartet, das Ergebnis der doubling()-Operation des val-Werts zu erhalten des Objekts im Funktionsaufrufmodus; und get_prop ist der Methodenaufrufmodus.
Wenn das Skript geladen wird und das Attribut prop von obj initialisiert wird, wird die Anweisung „name: [object Window]; type: object“ ausgegeben. Bei Verwendung von obj.get_prop() wird die Anweisung „name: [object Objekt]; Typ: Objekt“ wird ausgegeben. „Ausgabe. Ersteres gibt an, dass „this“ im Funktionskörper das globale Variablenfenster ist, und letzteres ist erwartungsgemäß obj selbst.
Sie können den Rückgabewert des Attributs prop und der Methode get_prop() überprüfen. Ersteres multipliziert das Fensterobjekt und gibt NaN zurück, und letzteres ist gleich 200.
Zusätzlich zum obj-Literalausdruck wird erwartet, dass das Attribut new_prop und die Methode new_get_prop() festgelegt werden. Das Ergebnis stimmt mit dem vorherigen Artikel überein und der Methodenaufrufmodus erhält die Bindung an sich selbst.