静态方法
static classMethod() {
this.baz();
}
static baz() {
console.log('hello');
}
baz() {
console.log('world');
}
}
A.classMethod();
// hello
复制代码
A 类的classMethod 方法前有 static关键字,表明这是一个静态方法,可以在 A 类上直接调用,而不是在实例上调用
在实例a上调用静态方法,会抛出一个错误,表示不存在改方法。
如果静态方法包含this关键字,这个this指的是类,而不是实例。
静态方法classMethod调用了this.baz,这里的this指的是A类,而不是A的实例,等同于调用A.baz。另外,从这个例子还可以看出,静态方法可以与非静态方法重名。
父类的静态方法,可以被子类继承。
静态属性
静态属性指的是 Class 本身的属性,即Class.propName,而不是定义在实例对象(this)上的属性。
写法是在实例属性的前面,加上static关键字。
class MyClass {
static myStaticProp = 42;
constructor() {
console.log(MyClass.myStaticProp); // 42
}
}
复制代码
取值函数(getter)和存值函数(setter)
私有属性
new target属性
继承总结
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END