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 
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我是谁,我来自哪,我是谁的谁 想必大家一定在学习或者开发过程常常被JS独有的原型继承拨过不少脑弦吧,为何不迎问题而...
    俗三疯阅读 348评论 0 2
  • 例子 我们生成两个构造函数,后面的例子都是让‘’猫‘’继承‘’动物‘’的所有属性和方法。 动物(为了更好的理解各种...
    流光号船长阅读 350评论 0 1
  • JavaScript有多种继承模式,总结起来用到的方法有:原型链的传递、构造函数的借用、对象的复制。 对于原型链和...
    minxuan阅读 7,001评论 5 29
  • 本文译自:How To Close Channels in Golang Elegantly。几天前,我写了一篇文...
    天唯阅读 69,002评论 26 113
  • 财务知识 规则一:你必须明白资产和负债的区别,并且尽可能的购买资产。 大多数人就是因为不清楚资产与负债之间的区...
    海盗树阅读 277评论 0 0