美文网首页
原型链继承

原型链继承

作者: 南蓝NL | 来源:发表于2019-07-14 10:19 被阅读0次

    基本思想:利用原型让一个引用类型继承另一个引用类型的数组和方法。
    构造函数、原型对象和实例之间的关系:每个构造函数都有一个原型对象,每个原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。
    优点: 实例会继承父类所有的属性和方法
    缺点: 优点也是原型链继承的缺点,就有一旦其中某一个实例改变了其中一个属性或者是方法,那么其他的实例也会共享到,且不能向父类型传递参数

    function Animal(){
      this.species = '哈士奇'
    }
    
    Animal.prototype.getSpecies = function(){
      return this.species
    }
    
    function Dog(){
        this.species = '阿拉斯加犬'; // 在子类改变了父类的属性
    }
    
    Dog.prototype = new Animal(); // 继承了Animal的属性和方法
    
    var dog1 = new Dog();
    var dog2 = new Dog();
    
    console.log(dog1.getSpecies());  // 阿拉斯加犬
    console.log(dog2.getSpecies());  // 阿拉斯加犬,所有实例都被实例改变了
    

    ·

    相关文章

      网友评论

          本文标题:原型链继承

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