2012-09-21 93 views
2

在Node.js REPL中,如果鍵入String.prototype,則返回空對象:{}。但是,如果您在Chrome瀏覽器JavaScript控制檯中輸入該對象,則會返回一個包含期望的函數名稱和函數的對象。查看Node.js的方法String.prototype?

爲什麼Node.js不會出現這種行爲?我如何訪問Node.js中的本地String函數?

回答

3

據對FreeNode的/#的IRC用戶Node.js的

BennyLava:Object.getOwnPropertyNames(String.prototype)

jmar777:因爲在REPL你基本上得到調用toString()的結果在結果上,而鍍鉻控制檯有對象

BennyLava的一些花哨的交互顯示:他們只是不可枚舉

所以答案是Object.getOwnPropertyNames(String.prototype)

+0

真的嗎?記錄一個對象工作正常 - 你不會把'[object Object]'作爲一個字符串。 – pimvdb

+0

@pimvdb呵呵,關於jmar777的評論?雅,我認爲這與他們不可枚舉的事實有關,這就是他們不出現的原因。 –

+1

@pimvdb:這是因爲'console.log' [不只是輸出參數的'toString'](https://github.com/joyent/node/blob/v0.8.9/lib/util.js#L23) 。 – josh3736