2016-09-27 6 views
0

ノードバージョンv5.4.1と現在のディレクトリのnode_modulesにlodashをインストールしました。そして、私はこの問題を「_」が特別であると思われる場所に惹きつけます。なぜ_ノードREPLモードで変数名が必要なのですか?

> var _ = require('lodash'); 
undefined 
> _.defaults 
TypeError: Cannot read property 'defaults' of undefined 
    at repl:1:2 
    at REPLServer.defaultEval (repl.js:252:27) 
    at bound (domain.js:287:14) 
    at REPLServer.runBound [as eval] (domain.js:300:12) 
    at REPLServer.<anonymous> (repl.js:417:12) 
    at emitOne (events.js:82:20) 
    at REPLServer.emit (events.js:169:7) 
    at REPLServer.Interface._onLine (readline.js:210:10) 
    at REPLServer.Interface._line (readline.js:549:8) 
    at REPLServer.Interface._ttyWrite (readline.js:826:14) 
> var l = require('lodash'); 
undefined 
> l.defaults 
[Function] 
> 

私はa question related to undefined outputを見ました。しかし、変数名として '_'が指定されている場合、 'require'が失敗することはまだありません。あなたはそれについて何か知っていますか?

答えて

1

アンダースコアは、holds the result of the most recent expressionという特別な変数です。ノードv6.0.0より前では、この動作を無効にすることはできませんでした。しかし、ノードv6.0.0では、アンダースコア変数を上書きできるようになったa changeが導入されました。したがって、ノードREPL内の変数_を再割り当てする場合は、ノードのコピーをアップグレードする必要があります。

関連する問題