2017-04-25 4 views
0

MDNによると、thisキーワードは次のように動作します。Node.js thisキーワード

グローバル実行コンテキスト(関数外)では、strictモードであるかどうかに関係なく、グローバルオブジェクトに対して を参照します。

私はこれらのコードを実行することによってそれをテスト:

'use strict'; 
console.log(this === global); 

結果は混乱しています。これらのコードをファイルに入れてnode test.jsを実行して実行すると、falseが返されます。しかし、repl.itで実行すると、trueを返します。

私は両方の方法が真を返すと予想します。なぜ誰かが説明できますか?

答えて

1

ノード内のファイルはモジュールであり、グローバル名前空間を汚染しないように独自のコンテキストにあります。

あなたは独自のコンテキスト内にあります。これはグローバルコンテキストです。

+0

これは、デフォルトでは、すべてのnodejsファイルで 'this'がグローバルオブジェクトと等しくないことを意味しますか? –

+1

@JunbangHuangいいえ、ファイルがモジュールとして実行されるかどうかによって異なります。 – Bergi

関連する問題