2017-08-31 7 views
0

はのは、この非常に基本的なprogram.jsを見てみましょう。ここではノードJS行動

console.log(this); 

が出力されますコンソール:

$ nodejs 
> console.log(this) 

最後に未定義のログが表示されます。

なぜ同じ結果が得られないのですか?

おかげ

+0

空のオブジェクトがどのように取得されているのか、定義されていないオブジェクトの外側にある未定義がグローバルオブジェクトを参照するのかよくわかりません。 IE。これは===グローバル – thomasmeadows

答えて

1

あなたは基本的に2つの異なる環境でコードを実行しているので、次の2つの異なる動作を経験しています。

program.jsには、this answerが適用されます。あなたはnode.jsモジュールにいるので、thismodule.exportsと同じです。

node.js replには、this answerが適用されます。あなたはnode.jsモジュールにいません。グローバルコンテキストを使用するreplにいます。 thisglobalと同じです。ブラウザ内で同じコードを実行した場合、globalの代わりにwindowオブジェクトが参照されます。