2012-11-21 135 views
0

這裏我有一個簡單的繼承函數,它接受一個對象參數,並返回一個新創建的對象與傳遞的對象,因爲它的原型對象。顯示原型對象的屬性?

function inherit(p) { 
if (p == null) throw TypeError(); //p must not be null 
if(Object.create) { //if the object.create method is defined 
    return Object.create(p); //use it 
} 

//type checking 
var typeIs = typeof p; //variable that holds type of the object passed 
if(typeIs !== 'object' && typeIs !== 'function') { 
    throw TypeError(); 
} 

function f() {}; //dummy constructor 
f.prototype = p; //prototype 
return new f(); //return new constructor 
} 

var $f0 = {}; 
$f0.x = 1; 
var $g0 = inherit($f0); 
$g0.y = 2; 
var $h0 = inherit($g0); 

console.log('x' in $h0); //true 
console.log(Object.getOwnPropertyNames($h0.prototype)); //throws error 

我遇到的問題是我跑我inherit功能之後,我不能來查找對象原型屬性。

我該如何去展示原型對象的屬性?

+1

'$ h0 .__ proto__','.prototype'是構造函數的一個屬性,不是對象 – Esailija

+0

工作正常。這是完成這個的唯一方法嗎?我的印象是'__proto__'不是標準的。 – Sethen

回答