ES6-class、extends、super

ES6中 有了Class(类的概念),这使得原型、构造函数,继承等显得更加简单
// 定义一个类
class Cat{
    // 里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。
    // constructor内定义的方法和属性是实例对象自己的
    // 而constructor外定义的方法和属性则是所有实例对象可以共享的原型链上的方法
    constructor(){
        this.type= 'cat';
    }
    say(name){
        console.log(`${name} is a ${this.type} `)
    }
}
var m = new Cat();
m.say('luck'); // luck is a cat 
// class之间可以通过extends关键字实现继承
class Newcat extends Cat{
    constructor(){
        super(); // 调用super()是继承父类的this对象
    }
}
// ES6的继承机制,实质是先创造父类的实例对象this
// 所以必须先调用super方法,然后再用子类的构造函数修改this。

你可能感兴趣的:(ES6-class、extends、super)