问题:新创建一个对象,如何做到让这个对象可以继承任何对象?也就是说可以让这个对象以任何对象为原型?
答:
function newObject(p){
if(p==null) throw Error();
if(Object.create){//是ECAMSCRIPT中新定义的Object的一个函数,是一个静态函数,不属于任何对象,第一个参数是必须的,表示新建的对象的原型是什么,而且可以是任何
类型的对象,包括null 对象。
return Object.create(p);
var t=typeof p;
if(t!=="Object"||t!=="function")throw Error();
function f(){}
f.prototype=p;
return new f();
}
}
以上使用要注意,原型中的属性的值可以读,但是是写不了的。