【问题标题】:In the Node.js REPL, why does this happen?在 Node.js REPL 中,为什么会发生这种情况?
【发布时间】:2013-06-09 00:36:27
【问题描述】:

所以当我发现一些非常奇怪的东西时,我正在使用 Node.js REPL 和 Underscore 库。如果我require("underscore"),变量_ 是全局设置的(显然)。然后当我尝试运行像console.log(_.isEmpty) 这样的简单命令时,它会打印[Function](同样,很明显)。然而,在运行console.log(_) 之后,它会打印[Function],因为变量_ 被设置为_.isEmpty

为什么要这样做?如果我从 js 文件运行相同的代码,则不会发生这种情况。这是正常的 Node 问题还是完全的错误?

仅供参考:节点 v0.10.10

【问题讨论】:

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


【解决方案1】:

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

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

您需要使用不同的标识符:

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

【讨论】:

  • 所以使用下划线.noConflict()模式
  • 哇,如果我刚刚阅读了完整的文档,我就会明白这一点。谢谢!猜猜我不只是疯了......
  • 在 Node v6.0 中,_(下划线)的默认行为在分配给任何值时都会被禁用。一条消息显示“现在已禁用对 _ 的表达式分配。”
猜你喜欢
  • 2013-08-02
  • 2018-12-19
  • 2021-01-24
  • 1970-01-01
  • 2021-04-30
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多