JavaScript组合继承

概念

综合了[[原型链继承]]和[[盗用构造函数]]继承, 也叫做伪经典继承

  • 用原型链继承, 继承父类(非原型)的方法和属性
  • 用盗用构造函数, 继承父类原型上的方法和属性

实现代码

   function Father(name){

        this.name = name;

   }

   Father.prototype.sayName = function(){

    console.log(this.name);

   }

   function Son(name){

    Father.call(this, name);// 盗用构造函数

   }

   Son.prototype = new Father(); // 原型链继承

  

   let s = new Son("JSON");

   console.log(s);



注意点

  • [[盗用构造函数]]那部分是无法给父类对象赋值, 所以出现了下面运行情况name: undefined

Prev Post JavaScript原型对象2
Next Post JavaScript原型式继承详解