注:使用 extends 关键字实现继承,子类中使用 super 关键字来调用父类的构造函数和方法。
1:static
用static修饰的方法或属性是静态化方法或属性,它们不需要实例化,而是直接通过类来调用;
class Animal {
static isAnimal(a) {
return a instanceof Animal;
}
}
let a = new Animal('Jack');
Animal.isAnimal(a); // true
a.isAnimal(a); // TypeError: a.isAnimal is not a function
class Animal {
static num = 42;
constructor() {
// ...
}
}
console.log(Animal.num); // 42
2:public
修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 public 的
3:protected
修饰的属性或方法是受保护的,它和 private 类似,区别是它在子类中也是允许被访问的
4:private
private 修饰的属性或方法是私有的,不能在声明它的类的外部访问;使用 private 修饰的属性或方法,在子类中也是不允许访问的
5:readonly
使用 readonly关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化。