在Node.js REPL中,为什么会发生这种情况?

时间:2013-06-12 19:03:05

标签: node.js underscore.js read-eval-print-loop

当我发现一些非常奇怪的东西时,我正在玩Node.js REPL和Underscore库。如果我require("underscore"),则变量_全局设置(显然)。然后,当我尝试运行像console.log(_.isEmpty)这样的简单命令时,它会打印[Function](显然,再次)。但是,在正好​​运行console.log(_)后,它会打印[Function],因为变量_已设置为_.isEmpty

为什么这样做?如果我从js文件运行相同的代码,这不会发生。这是一个正常的节点,还是一个完整的错误?

仅供参考:节点v0.10.10

1 个答案:

答案 0 :(得分:13)

节点的REPL始终将_设置为最后一行的结果。

> 2
2
> _
2
> 2+2
4
> _
4
>

您需要使用其他标识符:

var u = require("underscore");
u.isEmpty