2013-10-09 69 views
1

如果每個對象最終都從最高級別的Object繼承,並且最高級別的Object具有getPrototypeOf()函數/方法,那麼爲什麼下面的代碼會產生錯誤?爲什麼getPrototype方法調用會導致錯誤?

obj = {}; 
proto = obj.getPrototypeOf(obj); 

錯誤:對象不支持屬性或方法「getPrototypeOf」

當我看着IE10的(F12開發人員工具)當地人標籤,它說的obj已具雛形,而原型方法,其中之一是isPrototypeOf。

這裏是我完整的HTML:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
obj = {}; 
proto = obj.getPrototypeOf(obj); 
</script> 
</head> 
<body> 
</body> 
</html> 

請注意:我專門問爲什麼它顯示爲原型,爲OBJ下的方法,但會產生一個錯誤(如果我們假設僅是Object的方法,但不是繼承的原型)?我會張貼它的截圖,但是因爲我是新手,所以我的聲望太低了。

+0

檢查文檔:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf – epascarello

+0

我做到了。這並不能幫助我解決這個問題。 (或我沒有看到它) – esnm

+0

你說'isPrototypeOf'?與'getPrototypeOf'? – bfavaretto

回答

2

getPrototypeOfObject對象上,而不是一個對象的實例,試圖

obj = {}; 
proto = Object.getPrototypeOf(obj); 
+0

但爲什麼該方法顯示在obj的原型下列出? – esnm

+0

這發生在哪裏? – Musa

+0

IE10 F12開發者屏幕下的腳本標籤,然後本地選項卡(當我展開+標誌爲obj)。 – esnm

0

這是因爲getPrototypeOf不上的所有對象的方法,這是... Object對象的一個​​方法。使用Object.getPrototypeOf(obj)

0

嘗試

obj = {}; 
proto = Object.getPrototypeOf(obj) 
相關問題