js继承

原型继承

function superType() {
  this.issuper = true;
}

superType.prototype.superFn = function () {
  console.log('super function');
}

function subType() {
  this.issub = true
}

subType.prototype = new superType();

subType.prototype.subFn = function () {
  console.log('sub funciton');
}

借用构造函数

function superType() {
  this.issuper = true;
}

superType.prototype.superFn = function () {
  console.log('super function');
}

function subType() {
  superType.call(this);
  this.issub = true
}

subType.prototype.subFn = function () {
  console.log('sub funciton');
}

组合继承

function superType() {
  this.issuper = true;
}

superType.prototype.superFn = function () {
  console.log('super function');
}

function subType() {
  superType.call(this);
  this.issub = true
}

subType.prototype = new superType();

subType.prototype.subFn = function () {
  console.log('sub funciton');
}

原型式继承

function object(o) {
  function F() {}
  F.prototype = o;
  return new F();
}

ECMAScript5 中已经规范这种继承方式:

Object.create();

寄生式继承


function createAnotherObj(original) {
  var clone = object(original);
  clone.sayHi = function () {
    console.log('hi');
  }
  return clone;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 js的继承有6种方式,大致总结一下它们各自的优缺点,以及它们之间的关系。 1.原型链 js的继承机制不同...
    空_城__阅读 800评论 0 11
  • “照见五蕴皆空,度一切苦厄。” / 小和尚偷跑出寺庙,厌倦山中的晨钟暮鼓和经年不变的木鱼声。 住持了然,仍闭目诵读...
    是临溪阅读 260评论 0 0
  • 我认为人与人之间的信任是十分的重要的,假如你不相信他的话,那你又怎么能让人相信呢。当你做出对朋友不利的事情来的话,...
    俞加顺阅读 1,304评论 0 1
  • 曾几何时,为了完成某件事不眠不休,废寝忘食;曾几何时,为了达到某个目标,心无旁骛,默默努力;曾几何时,为了某个信念...
    从心处发阅读 349评论 0 0