2014-07-14 58 views
0

我試圖打印出Object.prototype的屬性,但因此不斷收到undefined。誰能告訴我我做錯了什麼?列出Object.prototype的屬性

for (var property in Object.prototype) { 
    if (Object.prototype.hasOwnProperty(property)) { 
     console.log(property); 

    } 
} 

undefined

+0

因爲這些屬性是不可寫的,不可枚舉的和不可配置的? – elclanrs

回答

1

微薄的答案是正確的,但我會解釋如何做你想在這裏。

您需要使用Object.getOwnPropertyNames才能獲得列表。

var properties = Object.getOwnPropertyNames(Object.prototype); 
for (var i=0; i<properties.length; i++) { 
    if (Object.prototype.hasOwnProperty(properties[i])) { 
     console.log(properties[i]); 
    } 
} 
+0

這正是我想要的。感謝您的澄清 –

2

你不能「越來越不確定的」,你的循環是簡單地執行0次,而JavaScript控制檯的REPL正顯示出你的最後一條語句的值爲「undefined」。

Object.prototypehas no enumerable properties