ich folgenden Code in das heißt versucht haben, firefox und node.jsunterschiedliches Verhalten der Keyword "this" zwischen node.js und Browsern
var x = 10;
var o = { x: 15 };
function f(){
console.log(this.x);
}
f();
f.call(o);
die Ergebnisse in Browser sind 10, 15, aber das Ergebnis in node.js ist undefined, 15.
Bitte erklären Sie mir, was ist das unterschiedliche Verhalten von "diesem" Schlüsselwort in Browsern und node.js? Ich habe viele Seiten gelesen, aber es gab keine offensichtliche Antwort. Vielen Dank im Voraus.
Vielleicht Node.js läuft im strikten Modus, standardmäßig ... (Im strikten Modus, 'this, innerhalb einer Funktion, nie auf das globale Objekt. –
Wie laden Sie diesen Code in node.js? Sie würden dieses Verhalten sehen, wenn das, was auch immer den node.js-Code geladen hat, es als einen Funktionskörper wie über 'neue Funktion (javascriptSourceCode)()' analysierte, weil 'var x' dann eine lokale Variable zu einer Funktion deklarierte, anstatt eine oberste Ebene zu sein global. –
@ ŠimeVidas, in diesem Fall würden Sie eine Ausnahme erhalten, die 'null', nicht' undefiniert' für 'this.x' dereferenziert. –