这里我有一个简单的继承函数,它接受一个对象参数,并返回一个新创建的对象,传递的对象作为它的原型对象。
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
函数后,我无法查找对象原型属性。
我将如何展示原型对象属性?
答案 0 :(得分:0)
您想使用Object.getOwnPropertyNames(
Object.getPrototypeOf
($h0))
或非标准__proto__
property。 prototype
仅是构造函数上的属性名称。