51

node.js モジュールでこれを行うと、次のようになります。

var abc = '123';

それはどこに行くのですか?つまり、ブラウザでそれが入りますwindow.abc(関数またはその他で実行されない場合)

これを実行すると:

abc = '123';

その後、で見つけることができますが、それはglobal.abc私が望む方法ではありません。

4

4 に答える 4

78

変数がデフォルトでグローバル空間 (つまりウィンドウ) に割り当てられるブラウザとは異なり、Node では、明示的に module.exports に割り当てない限り、変数はモジュール (ファイル) にスコープされます。

実際、実行すると、node myfile.jsまたはrequire('somefile.js')ファイル内のコードが次のようにラップされます。

(function (exports, require, module, __filename, __dirname) {
     // your code is here
});
于 2013-03-14T13:53:17.667 に答える
5

ノードにはモジュールスコープがあるため、モジュール内では、そのモジュールにスコープが設定var abc = '123'された (したがって、コード内のコードにのみ到達可能な) 変数が作成されます。

http://nodejs.org/api/globals.html#globals_globalも参照してください

于 2013-03-14T10:19:07.537 に答える