2017-08-19 6 views
0

これはfoo.jsという名前のファイル内のスクリプトです。ノードシェルで 'this'とは何が定義されていますか?

console.log(this === module.exports) 

これは、期待される出力、すなわちtrueを与える。

$ node foo.js 
true 
$ node 
> require('./foo') 
true 
{} 

しかし、私は次のように反対の出力、すなわちfalseを生産する理由を理解することができません。

$ node 
> console.log(this === module.exports) 
false 
undefined 
> .load foo.js 
> console.log(this === module.exports) 
false 
undefined 

ノードシェルではthisと定義されていますか?

+1

グローバルオブジェクト 'global' – Ryan

+1

コンソールに 'this'と入力してEnterキーを押してみてください。 :-) –

+1

[node.jsはブラウザのウィンドウオブジェクトに相当しますか?](https://stackoverflow.com/questions/19849136/does-node-js-have-equivalent-to-window-object-in) -browser) – lifeisfoo

答えて

-3

ノードシェルでは、thisキーワードはglobalを指します。したがって:

node 
> this === global 
true 

これはファイルパッケージを指しています。ギフトボックスでYou Don't Know Jsの本を見てください!このキーワードがどのように機能し、多くの誤解を払拭しているかを説明します。

+0

なぜダウン投票しましたか? –

関連する問題