JS——ES6 class类和继承及其实际运用
1、类的定义
不同于ES5使用构造函数来定义类,ES6中使用class关键字来定义类,并且类中构造函数为constructor,构造函数中使用this为构造函数添加实例成员:
class Person{
constructor(name,age) {
this.name = name;
this.age = age;
}
}
2、类的构造函数和其他属性
(1)类的构造函数:一个类最多可以写一个构造函数,函数名只能是constructor;只有创建对象时构造函数才会被调用(使用new);构造函数可以带参数;当一个类没有设置构造函数时,会有一个默认构造函数,函数体为空;只要写了构造函数就不存在默认构造函数。
- 使用new关键字通过类创建实例化对象,一定会调用构造函数,并且类仅能通过new来创建对象
- 构造函数中的this指向创建出来的实例化对象,可以通过对象名.变量名访问构造函数中的变量
class Person{
constructor(name,age) {
this.name = name;
this.age = age;
}
}
let person1 = new Person('zhang',10);
console.log(person1.name,person1.age);
(2)在类中添加原型方法:不同于ES5,ES6类中添加原型方法不用function,类中的方法也没有prototype属性,类中直接使用函数名来定义原型方法;在原型方法中使用this.变量名可以访问构造函数中的变量(实例成员):
- 在类外可以通过prototype添加原型成员,但是这中方法不推荐
class Person{
constructor(name,age) {
this.name = name;
this.age = age;
}
say(word){
console.log(`