ES5 与 ES6 ,关于继承的两种写法

继承是指一个对象直接使用另一对象的属性和方法。

ES5:

function Human(name){
  this.name = name
}
Human.prototype.run = function(){
  console.log(this.name+'跑步 ing')
  return undefined
}
function Man(name){
  Human.call(this,name)
  this.gender = '男'
}

var f = function(){}
f.prototype = Human.prototype
Man.prototype = new f()

Man.prototype.fight = function(){
  console.log('打架 ing')
}

ES6:

class Human{
  constructor(name){
    this.name = name
  }
  run(){
    console.log(this.name+'跑步 ing')
    return undefined
  }
}
class Man extend Human{
  constructor(name){
    super(name)
    this.gender = '男'
  }
  fight(){
    console.log('打架 ing')
  }
}



优劣对比:
ES5 继承的写法,从原型链的角度来看更易于理解,但写法上比 ES6 的继承稍有复杂。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • class的基本用法 概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子: ...
    呼呼哥阅读 4,207评论 3 11
  • 在ES5继承的实现非常有趣的,由于没有传统面向对象类的概念,Javascript利用原型链的特性来实现继承,这其中...
    Daguo阅读 26,127评论 10 44
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 1,672评论 0 8
  • 写在前面 之所以想写这个,是想为以后学习 react 做个铺垫,每一个看似理所当然的结果,实际上推敲过程很耐人寻味...
    一慢呀阅读 438评论 0 2
  • 真是讨厌极了以前那个谈恋爱时的我 每一天都在期盼 "他怎么还不来找我 他怎么就知道打游戏 他还想好好处下去吗 我要...
    diudiu叽阅读 187评论 0 0

友情链接更多精彩内容