js高级——经典继承的实现

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 () ;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值