简介:在ES6中,我们可以使用class关键字来定义类,并通过extends关键字实现类的继承,然后在子类中,我们可以使用super()关键字来调用父类的构造函数;今天来分享下class关键字的使用详细。
1、首先,使用class关键字,定义一个父类;
这里定义一个名为Fatherfn的class类,类名字首字母要大写class Fatherfn{ constructor是默认构造方法,不能修改constructor(name) { this.name = name;}父类中的eat()方法eat() { console.log(`${this.name} is eating.`);}}
2、然后再定义一个子类,通过extends、super()方法,继承父类名为Fatherfn的class类;
这里再定义一个名为Son的class类,并通过extends继承上面名为Fatherfn的类这里继承extends Fatherfn ,继承父类属性
class Son extends Fatherfn { constructor是默认构造方法,不能修改constructor(name, hobby) {结合super()方法, 可以继承调用父类的构造函数super(name); this.hobby= hobby;} 子类中的drink()方法 drink() { console.log(`${this.name} is drinking.`); } }
3、最后,创建一个子类的实例对象;
const demoFn= new Son("Buddy", "study");// 调用子类的方法
demoFn.eat();
// 输出:Buddy is eating. demoFn.drink();
// 输出:Buddy is drinking.可以看到这里既可以使用父类函数中的eat()方法,也可以使用子类函数中的drink()方法。
注意事项:
- class关键字,命名的函数,名字首字母要大写(要求,但不强制);
- 每一个class类里面都有一个constructor构造方法,这个方法名字不能修改;
- class类中,无法使用es5的function()写法;
总结:
1、ES6中的class类继承和super()用法可以实现类与类之间的继承关系,然后通过extends关键字,子类可以继承父类的属性和方法。
2、在子类的构造函数中,使用super()关键字调用父类的构造函数,并传递相应的参数。这样可以实现代码的复用和扩展,提高代码的可读性和可维护性。