美文网首页
借用构造函数和组合继承

借用构造函数和组合继承

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

借用构造函数(伪造对象或经典继承)

基本思想:在子类型构造函数的内部调用超类型的构造函数
优点: 相比原型链而言,借用构造函数有一个很大的优势,就是子类型函数构造函数可以向超类型构造函数传递参数
缺点: 方法都在构造函数中定义,因此函数的复用性就无从谈起了

function  Animal(speices){
  this.speices = speices;
}

function Dog(){
  Animal.call(this,'中华田园犬');  //  dog拥有了animal中的name属性
}

var dog1 = new Dog();
var dog2 = new Dog();
console.log(dog1.speices);  //  中华田园犬

组合继承(原型链+借用构造函数)

  • 基本思想: 原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承
  • 优点: 在原型上定义方法是实现了函数复用,又能偶保证每个实例都有它自己的属性
function Animal(speices){
  this.speices = speices;
  this.skills = ["jump","climb","catch","run"]
}

Animal.prototype.getSpeices = function(){
  console.log(this.speices)
}

function Dog(speices,color){
  // 借用构造函数继承,继承父类的属性
  Animal.call(this,speices);
  this.color = color;
}

// 原型继承,继承父类的方法
Dog.prototype = new Animal();

Dog.prototype.getColors = function(){
  console.log(this.colors);
}

var dog1 = new Dog('博美','white');
dog1.skills.push('acting');
console.log(dog.skills);  //  ["jump","climb","catch","run","acting"]
dog1.getSpeices();  // 博美

var dog2 = new Dog('柯基','brown');
console.log(dog2.skills); //  ["jump","climb","catch","run"]
dog2.getSpeices();  // 柯基

组合继承融合借用构造函数(属性继承)和原型链继承(方法继承)的优点,使实例都有自己的属性,又能共享统一方法,成为最常用的继承方法

相关文章

  • JavaScript几种继承方式及其优缺点总结

    •借用构造函数 (又叫伪造对象或经典继承)•组合继承(也叫伪经典继承)•寄生组合式继承 ☞借用构造函数继承 原理:...

  • js中实现继承的方式

    原型继承 借用构造函数继承 组合继承:

  • 前端面试题总结【38】:javascript继承的 6 种方法

    原型链继承 借用构造函数继承 组合继承(原型+借用构造) 原型式继承 寄生式继承 寄生组合式继承 推荐: 持续更新...

  • JavaScript的六种继承方式

    JavaScript的几种继承方式 原型链继承 借助构造函数继承(经典继承) 组合继承:原型链 + 借用构造函数(...

  • 二、js继承的几种方式及优缺点

    1、继承:原型链、借用构造函数、组合继承、原型式继承、寄生式继承、寄生组合继承

  • 2019-03-25 继承

    js中通过原型来实现继承 组合继承:原型继承+借用构造函数继承

  • 借用构造函数和组合继承

    借用构造函数(伪造对象或经典继承) 基本思想:在子类型构造函数的内部调用超类型的构造函数优点: 相比原型链而言,借...

  • 继承

    一、原型链 二、借用构造函数 三、组合继承 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属...

  • js面向对象的几种写法

    一、工厂模式 二、构造函数模式 三、原型模式 四、组合使用构造函数和原型模式 五、原型链继承 六、借用构造函数继承...

  • javascript继承之组合继承(三)

    组合继承也叫伪经典继承,也就是组合了原型链和借用构造函数实现思想:使用原型链实现对原型属性和方法的继承,通过借用构...

网友评论

      本文标题:借用构造函数和组合继承

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