//为了实现上面的关系,需要进行相关的转换,也就是通过某个构造函数创建一个实例o4,执行构造函数的原型指向o3
function F(){}
F.prototype=o3;//让F的实例都可以访问到o3中的属性
var o5=new F();//o5.__proto__===o3
o5.length=10;
o5.gender="女";
console.log(o5.length);//自己的length
console.log(o5.gender);//自己的gender
console.log(o5.name);//自己没有,访问o3的name属性
//总结:
//原型式继承的功能:创建一个新的对象,让新的对象可以继承自指定的对象,从而这个新的对象既可以访问到自己的属性,也可以访问到指定的对象的属性
//现代浏览器中:Object.create()实现了原型式继承(经典继承)
//ES5(js语言规范的第五个版本)——Object.create()--->IE9以下不支持
//var o6=Object.create(o3);//o6继承自o3
封装::
//如果希望写出一段代码,实现原型式继承,让它可以兼容所有的浏览器
//执行过程:首先判断浏览器是否存在这个方法,如果不存在,这个浏览器自己没有实现经典继承,就帮他实现
// 如果已经存在,就不需要进行任何操作
//经过上面的处理之后,就实现了可以在任意浏览器版本中,可以调用Object.create()
if(!Object.create){
Object.create=function(parent){
function F(){}
F.prototype=parent;
return new F();
};
}
alert(Object.create.toString());
var o7=Object.create(o3);//o6继承自o3
alert(o7.name);