美文网首页
js实现继承方式总结

js实现继承方式总结

作者: 星月西 | 来源:发表于2017-08-25 14:26 被阅读14次

    1.原型链继承

    将父类对象创建出来,赋给子类的原型对象

    function SuperType(){
    
    }
    
    function SubType(){
    
    }
    
    SubType.prototype=new SuperType();
    

    原型链继承的问题:
    1.所有父类的属性和方法都会被子类的所有对象共享,有时候我们并不想共享父类的某些属性
    2.创建子类对象时,不能向父类构造函数中传递参数

    2.原型式继承

    基于已有的对象创建新对象,Object.create方法规范了原型式继承

    function object(o){
      function F(){}
      F.prototype=o;
      return new F();
    }
    

    3.寄生组合式继承

    即在子类构造函数中调用父类构造函数来继承父类的属性,创建父类原型的一个副本,将其赋给子类原型对象

    function SuperType(name){
      this.name=name;
    }
    
    function SubType(name,age){
      //调用父类构造函数继承属性
      SuperType.call(this,name);
      this.age=age;
    }
    
    inherit(SubType,SuperType);
    
    function inherit(subType,superType){
      //拷贝父类原型对象,继承公共的方法
      var prototype=Object.create(superType);
      prototype.constructor=subType;
      subType.prototype=prototype;
    }
    

    相关文章

      网友评论

          本文标题:js实现继承方式总结

          本文链接:https://www.haomeiwen.com/subject/iflihxtx.html