2014-10-11 48 views
0

我試圖更好地理解JS對象,並且正在爲node.js實驗pg module。我的問題是,爲什麼創建的對象沒有__proto__屬性?爲什麼這個模塊的__proto__爲空?

var pg = require('pg'); 

console.log('proto: %j', pg.__proto__); 

if ('connect' in pg) { 
    console.log("connect exists"); 
} 

輸出,當我運行nodejs test.js是:

proto: {} 
connect exists 

和PG模塊本身中,我可以看到connect方法連接到構造函數的原型:

PG.prototype.connect = function(config, callback) { 

有什麼神奇的是我的pg對象有這個connect方法,但有一個空的__proto__

回答

1

console.log替換%j,結果爲JSON.stringify。 JSON不支持函數,所以它們被省略。只是檢查typeof pg.__proto__.connect === 'function'

+0

所以它確實。 'console.log(第___原始__)'(沒有%j轉換)輸出我所期望的。謝謝。 – Flimzy 2014-10-11 01:17:58