Class 类完全可以看作构造函数的另一种写法,类的数据类型其实就是函数,类本身也就是其实例的构造函数。使用的时候也是使用 new 命令。
constructor 方法是类的默认方法,通过 new 命令生成对象实例时,会自动调用该方法。一个类必须有 constructor 方法,如果没有显式定义,会默认添加一个空的 constructor 方法。
在 Class 内部可以使用 get 和 set 关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。
类相当于实例的原型,所有在类中定义的方法,都会被实例继承。但如果在一个方法前,加上 static 关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。
Class 子类可以通过 extends 关键字实现继承。
子类必须在 constructor 方法中调用 super() 方法,否则新建实例时会报错。如果子类没有定义 constructor 方法,这个方法会被默认添加,且子类默认添加的 constructor 方法都会默认执行 super() 方法。
在⼦类的构造函数,必须先调⽤super( )
先调⽤super( ),才可以使⽤this
用代码实现类的继承:
class Animal{
constructor(name,age){
this.name=name;
this.age=age;
}
sayName(){
console.log('实例方法')
}
}
class Dog extends Animal{
constructor(name,age,color){
super(name,age);
this.color=color;
}
}
let dog=new Dog('小美',1,10,'golden');