1、经典继承的语法:Object.create(obj),返回值为一个对象,继承自参数中的obj,但是存在兼容性问题
var
o = {
name
:
"张三"
}
;
var
obj = Object.
create
(o)
;
console
.
log
(obj.
name
)
;
2、如何处理Object.create()的兼容性问题:兼容性的出现是因为浏览器中不支持这个方法。既要保证在支持这个方法的浏览器里面保证正常使用,又要保证在不支持这个方法的浏览器里面不报错
//检测浏览器的能力,如果没Object.create()方法就给它添加一个(不推荐使用)
//自己定义一个函数
function
create
(obj){
if
(Object.
create
){
//浏览器中是否支持Object.create()这个方法
return
Object.
create
(obj)
;
//如果有的话直接调用去实现功能并把创建出来的对象返回回去
}
else
{
//浏览器中不支持这个方法
function
F
(){}
//自己手动创建一个构造函数
F
.
prototype
= obj
;
return new
F
()
;
}
}