Saya telah belajar tentang node.js dan modul, dan sepertinya tidak bisa membuat perpustakaan Underscore berfungsi dengan baik ... sepertinya pertama kali saya menggunakan fungsi dari Underscore, itu menimpa objek _ dengan hasil dari panggilan fungsi saya. Ada yang tau apa yang terjadi? Sebagai contoh, berikut adalah sesi dari 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
Ketika saya membuat file Javascript sendiri dan mengimpornya, mereka sepertinya berfungsi dengan baik. Mungkin ada sesuatu yang istimewa dengan perpustakaan Garis Bawah?
node.js
module
underscore.js
Geoff
sumber
sumber
_
dalam REPL.Mulai hari ini (30 April 2012) Anda dapat menggunakan Garis Bawah seperti biasa pada kode Node.js Anda. Komentar sebelumnya benar menunjuk bahwa antarmuka REPL (mode baris perintah Node) menggunakan "_" untuk menahan hasil terakhir TAPI Anda bebas menggunakannya pada file kode Anda dan itu akan bekerja tanpa masalah dengan melakukan standar:
Selamat coding!
sumber
Atau :
sumber
npm install -g underscore
, maksud Anda :)npm install -g
Nama yang
_
digunakan olehnode.js
REPL untuk menampung input sebelumnya. Pilih nama lain.sumber
Catatan: Berikut ini hanya berfungsi untuk baris kode berikutnya, dan hanya karena kebetulan.
Dengan Lodash,
Tidak
var _ = require('lodash')
karena Lodash secara misterius menetapkan nilai ini secara global saat diminta.sumber
_
. Hasil dari pernyataan terakhir Anda adalah lash lodash. Jadi_.isArray([])
akan bekerja pada baris berikutnya , tetapi tidak pernah lagi.