美文网首页
es6基础语法-002

es6基础语法-002

作者: 大步迈 | 来源:发表于2017-09-10 15:50 被阅读5次
class Animal {
    constructor(){
        this.type = 'animal'
    }
    says(say){
        console.log(this.type + ' says ' + say)
    }
}

let animal = new Animal()
animal.says('hello') //animal says hello

class Cat extends Animal {
    constructor(){
        super()
        this.type = 'cat'
    }
}

let cat = new Cat()
cat.says('hello') //cat says hello

上面代码首先用class定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。简单地说,constructor内定义的方法和属性是实例对象自己的,而constructor外定义的方法和属性则是所有实例对象可以共享的。

Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多。上面定义了一个Cat类,该类通过extends关键字,继承了Animal类的所有属性和方法。

super关键字,它指代父类的实例(即父类的this对象)。子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象。

ES6的继承机制,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。

相关文章

  • es6基础语法-002

    上面代码首先用class定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this...

  • ES6基础语法

    ES6基础语法

  • ES6--let声明变量,const声明常量

    ECMA2015(也称es6),在原先javascript语法基础上新增语法特征,浏览器对es6的语法支持还不够,...

  • ES6典型语法示例(ReactNative语法入门)

    ReactNative的语法基础要求JS,JSX,ES6.其中ES6是这三种语法的核心.系统学习ES6的语法是Re...

  • 002 Markdown 语法(基础)

    Markdown 的优点: 可以对代码进行语法高亮 排版相对比较美观 方便复制示例代码 实时保存,不用担心误操作造...

  • 来,用ES6写个Promise吧

    本文采用es6语法实现Promise基本的功能, 适合有javascript和es6基础的读者,如果没有,请阅读 ...

  • 学习webpack记录

    现在在用JavaScript练习算法题,用到大量ES6语法特性,在补充ES6语言基础的同时,实在觉得nodejs内...

  • vuejs-todoapp实战过程总结

    反思 问题1:基础太薄弱,javascript语法、Linux操作语句、项目构建工具 对于涉及到ES6语法的Js看...

  • let 命令总结

    1、基础语法 语法类似 var 2、进阶语法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被...

  • React

    (1)React环境搭建的过程 安装地址示例 (2)React 基础 (2.1) es6语法 (2.2) JSX ...

网友评论

      本文标题:es6基础语法-002

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