14

コンソールでノードを実行して「」と入力するとvar _ = require('underscore');_未定義になります。同じコードをファイルに入れて実行すると、期待どおりにアンダースコアライブラリが含まれます。

$ node
> var _ = require('underscore');
> console.log(_)
undefined // underscore library does not load
> var async = require('async');
undefined
> console.log(async) // async library does
{ noConflict: [Function],
  nextTick: [Function],
  forEach: [Function],
...
>

ただし、実行された.jsファイルの同じコードは、node test.js両方のライブラリが期待どおりに読み込まれていることを示しています。どうしたの?

4

1 に答える 1

31

Node replは_、最後に評価された入力の値にバインドします。_のバインディングを上書きしますvar _ = ...;replのnode.jsドキュメントも参照してください。

これは、何が置き換えられても当てはまります...。たとえば、次のようになります。

$ node
> var _ = "any value";
undefined
> _
undefined
于 2012-05-23T01:01:08.940 に答える