美文网首页
用ES5和ES6实现继承

用ES5和ES6实现继承

作者: 吴一晏 | 来源:发表于2019-07-10 15:52 被阅读0次

ES5 prototype实现继承

function Human (name) {
  this.name = name
}
Human.prototype.run = function () {}

function Man (name) {
  Human.call(this,name)  //改变自身属性
  this.gender = '男' 
}
Man.__proto__ = Human.prototype  //实现继承

var f = function () {} //IE不支持上面的写法,需要引入一个空函数
f.prototype = Human.prototype
Man.prototype = new f()

ES6 写法

class Human {
  constructor (name) {
    this.name = name
  }
  run () {
    console.log("我叫"+this.name+",我在跑")
    return undefined
  }
}

class Man extends Human {
  constructor (name) {
    super(name)
    this.gender = '男'
  }
  fight () {
    console.log('糊你一脸')
  }
}

相关文章

  • 用ES5和ES6实现继承

    ES5 prototype实现继承 ES6 写法

  • ES5和ES6中继承的不同之处

    ES5和ES6中继承的不同之处 1、JS中视没有继承的,不过可以通过构造函数或是原型等实现继承,ES5实现继承的方...

  • ES5 和 ES6 继承比较:

    ES5构造函数和继承: ES6构造函数和继承:

  • 浅谈JavaScript原型、原型链的概念与继承的实现原理

    关于js对象的继承,es5和es6提供了两种不同的继承机制。es5通过修改原型链的方式实现继承,由此可见继承与原型...

  • 前端常见面试题(八)@郝晨光

    ES5/ES6 的继承除了写法以外还有什么区别? ES5寄生组合式继承(只是列举一个方法,ES5继承还有很多实现方...

  • ES5和ES6 实现继承方式

    在ES5 中:通过原型链实现继承的,常见的继承方式是组合继承和寄生组合继承;在ES6中:通过Class来继承 组合...

  • JS 继承的两种写法

    ES5 ES6 两种方法都能实现继承,本质上ES6继承是ES5继承的语法糖,会更简单些,但是假如要添加一个非函数的...

  • JavaScript的多态和封装

    在之前的文章中我们已经介绍了JavaScript的继承包含了ES5和ES6的版本。 ES5继承 传送门 ES6继承...

  • 继承(ES6)

    1、简介 在ES6中,我们定义类用Class,而继承通过extends关键字实现继承,这相比于ES5的通过修改原型...

  • js:class类

    一、继承 1. ES6的继承 2. es5实现 重点代码Animal.call(this,props)继承父类属性...

网友评论

      本文标题:用ES5和ES6实现继承

      本文链接:https://www.haomeiwen.com/subject/xephkctx.html