调用方式
- 静态方法:通过类名直接调用,不能通过实例调用。
- 实例方法:通过类的实例来调用。
作用域
- 静态方法:其作用域在类本身,无法访问实例的属性,只能访问类的静态属性。
- 实例方法:作用域在类的实例上,可以访问实例的属性以及类的静态属性。
代码示例
class MyClass {
constructor() {
this.instanceProp = '实例属性';
}
static staticMethod() {
// 这里不能访问this.instanceProp,会报错
console.log('这是静态方法');
}
instanceMethod() {
console.log(`这是实例方法,访问实例属性: ${this.instanceProp}`);
console.log(`访问静态属性: ${MyClass.staticProp}`);
}
}
MyClass.staticProp = '静态属性';
// 调用静态方法
MyClass.staticMethod();
// 尝试通过实例调用静态方法,会报错
// let myInstance = new MyClass();
// myInstance.staticMethod();
// 调用实例方法
let myInstance = new MyClass();
myInstance.instanceMethod();