JavaScript继承

知识点:

  1. 通过原型链来实现子类和父类的关联,通过instanceof 来检测两者之间关系。

    obj instanceof constructor //可以检测objd的constructor.prototype是否在obj的原型链上

  2. 构造函数(prototype)和实例对象(__proto__)都指向构造函数的原型对象

  3. 原型对象中constructor指向构造函数。

核心:

若使子类的实例原型链上有父类的prototype,可以将子类的prototype设置为父类的实例(更好的是设为父类prototype的副本)

function Super(name){
  this.name=name;
}
Super.prototype.say=function(){
  alert('g');
}
function Sub(name,age){
  Super.call(this,name);
  this.age=age;
}
inherit(Sub,Super);
Sub.prototype.talk=function(){
  alert('g');
}

function inherit(sub,sup){
  var prototype=Object.create(sup.prototype);
  prototype.constructor=sub;
  sub.prototype=prototype 
}

你可能感兴趣的:(JavaScript继承)