次のコードスニペットを指定します。JavaScriptのグローバルオブジェクトとウィンドウオブジェクト
var name = 'John';
function foo() {
console.log(this.name);
}
foo();
なぜそれが私がブラウザでこのコードを実行すると、ログが名前を出力しますが、私はノードに、この同じコードスニペットを実行すると、それはundefined
を出力しているのですか?
ブラウザでthis
がウィンドウオブジェクトを参照し、グローバル変数がウィンドウにアタッチされます。ノードthis
はこの例のグローバルオブジェクトを参照するので、グローバル変数はウィンドウにアタッチされたときと同じようにグローバルオブジェクトにアタッチされません。
[これはnodejsモジュールで何を意味していますか?](https://stackoverflow.com/questions/25058814/what-does-this-mean-in-a-nodejs-module) – jmargolisvt
私はノードで実行し、出力として 'John'を取得します。 –
これはバージョン管理の問題ですか?これは私のノードバージョンv7.7.4 –