1. 程式人生 > >Nodejs 在互動模式下 下劃線變數名

Nodejs 在互動模式下 下劃線變數名

今天在測試程式碼時候發現,在nodejs 互動模式下 ,如果下劃線作為物件名,會有意外事情發生

> function Testfun(par1) {
... return par1;
... }
undefined
> Testfun.prototype.fun2 = function(variables) {
... return variables;
... }
[Function]
> a=new Testfun(1)
{}
> a.fun2(2)
2
> a.fun2(3)
3
//如果用正常變數名,一切正常
> _=new Testfun(1)
{}
> _.fun2(2)
2
> _.fun2(3)
TypeError: undefined is not a function
    at repl:1:3
    at REPLServer.defaultEval (repl.js:132:27)
    at bound (domain.js:291:14)
    at REPLServer.runBound [as eval] (domain.js:304:12)
    at REPLServer.<anonymous> (repl.js:279:12)
    at REPLServer.emit (events.js:107:17)
    at REPLServer.Interface._onLine (readline.js:214:10)
    at REPLServer.Interface._line (readline.js:553:8)
    at REPLServer.Interface._ttyWrite (readline.js:830:14)
    at ReadStream.onkeypress (readline.js:109:10)
> _
2

//如果用下劃線變數名,_會被重新賦值

還要研究下為什麼出現這種狀況