Dowiedziałem się o node.js i modułach i nie mogę sprawić, by biblioteka Underscore działała poprawnie ... wygląda na to, że gdy po raz pierwszy używam funkcji z Underscore, nadpisuje ona obiekt _ wynikiem moje wywołanie funkcji. Czy ktoś wie, co się dzieje? Na przykład, oto sesja z pliku REPL node.js:
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
Kiedy sam tworzę pliki Javascript i importuję je, wydaje się, że działają poprawnie. Może jest coś specjalnego w bibliotece Underscore?
node.js
module
underscore.js
Geoff
źródło
źródło
_
w REPL.Od dzisiaj (30 kwietnia 2012 r.) Możesz normalnie używać podkreślenia w kodzie Node.js. Poprzednie komentarze wskazują, że interfejs REPL (tryb wiersza poleceń węzła) używa znaku „_” do przechowywania ostatniego wyniku, ALE możesz go używać na swoich plikach kodu i będzie działać bez problemu, wykonując standard:
Miłego kodowania!
źródło
Lub:
źródło
npm install -g underscore
masz na myśli :)npm install -g
Nazwa
_
używana przeznode.js
REPL do przechowywania poprzedniego wejścia. Wybierz inną nazwę.źródło
Uwaga: Poniższe działa tylko dla następnego wiersza kodu i tylko z powodu zbiegów okoliczności.
Z Lodash,
Nie,
var _ = require('lodash')
ponieważ Lodash w tajemniczy sposób ustawia tę wartość globalnie, gdy jest to wymagane.źródło
_
. Wynikiem twojego ostatniego oświadczenia była lodash lib. Tak_.isArray([])
będzie działać na następnej linii , ale nigdy więcej.