在Node.js中使用Underscore模块

我一直在学习有关node.js和模块的信息,似乎无法让Underscore库正常工作……似乎我第一次使用Underscore中的函数时,它会覆盖_对象,其结果为我的函数调用。有人知道发生了什么吗?例如,这是来自node.js

REPL的会话:

Admin-MacBook-Pro:test admin$ node

> require("./underscore-min")

{ [Function]

_: [Circular],

VERSION: '1.1.4',

forEach: [Function],

each: [Function],

map: [Function],

inject: [Function],

(...more functions...)

templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },

template: [Function] }

> _.max([1,2,3])

3

> _.max([4,5,6])

TypeError: Object 3 has no method 'max'

at [object Context]:1:3

at Interface.<anonymous> (repl.js:171:22)

at Interface.emit (events.js:64:17)

at Interface._onLine (readline.js:153:10)

at Interface._line (readline.js:408:8)

at Interface._ttyWrite (readline.js:585:14)

at ReadStream.<anonymous> (readline.js:73:12)

at ReadStream.emit (events.js:81:20)

at ReadStream._emitKey (tty_posix.js:307:10)

at ReadStream.onData (tty_posix.js:70:12)

> _

3

当我自己制作Javascript文件并将其导入时,它们似乎工作正常。Underscore库也许有一些特别之处?

回答:

Node REPL使用underscore变量保存上一次操作的结果,因此它与Underscore库对同一变量的使用相冲突。尝试这样的事情:

Admin-MacBook-Pro:test admin$ node

> _und = require("./underscore-min")

{ [Function]

_: [Circular],

VERSION: '1.1.4',

forEach: [Function],

each: [Function],

map: [Function],

inject: [Function],

(...more functions...)

templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },

template: [Function] }

> _und.max([1,2,3])

3

> _und.max([4,5,6])

6

以上是 在Node.js中使用Underscore模块 的全部内容, 来源链接: utcz.com/qa/412222.html

回到顶部