源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript关于继承解析

  • 时间:2022-03-11 03:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript关于继承解析
上一篇已介绍了组合继承,现在讲讲剩余的几种继承。 [b]原型式继承[/b] 调用一个函数,接收这个函数返回来的对象,这个对象的原型就是传入函数的参数对象。 如:
function  personObject(o){
    function F(){}
    F.prototype = o;
    return new F();
}
var person = {
   name:"Nicholas",
   friends:["Shelby","Court","Van"]
}

var person_one = personObject(person);
从上面的代码中,我们知道person是person_one的原型。ES5中添加了一个方法规范化原型式继承,这个方法是Object.create(),这个方法有两个参数,第一个是作为新对象原型的对象,像上面的person,第二个是为新对象定义额外属性的对象。第二个参数可选。 如:
var person_one = Object.create(person, {
        name: {
            value:"Jon"
      }
});
当你只想让一个对象与另一个对象保持类似时,可以使用原型式继承。 [b]寄生式继承   [/b] 在一个函数里实现一次原型式继承,然后为接收到的这个对象添加自己的属性与方法。 如:
function createAnother(o){
   var person_one = personObject(o);
   person_one.sayHi = function(){
       alert(" hi ");
   }
   return person_one;
}
[b]寄生组合式继承[/b] 组合继承也有其缺点,它实现了两次属性继承,而寄生组合式继承就避免了这个问题。实例通过构造函数继承了属性,而原型的方法则是通过寄生式继承的方式来继承。 如:
function inherit(subType, superType){
   var prototype = Object(superType.prototype);
   prototype.constructor = subType;
   subType.prototype = prototype;
}
通过调用上面的函数,实现subTye.prototype的原型是superType.prototype,完成了原型方法的继承。 以上这篇javascript关于继承解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部