在 javascript 中,使用 static 关键字定义静态方法。该方法直接挂载在构造函数(类)上,而非实例原型上,因此只能通过类名调用,无法通过实例调用。

静态方法与实例方法的区别是什么
静态方法属于类本身,而实例方法属于类的原型对象。这意味着静态方法不能访问 this 指向的实例属性,除非显式传入实例或参数。

class Calculator {
static add(a, b) {
return a + b;
}
multiply(a, b) {
return a * b;
}
}
console.log(Calculator.add(2, 3)); // 5
const calc = new Calculator();
console.log(calc.multiply(2, 3)); // 6
// console.log(calc.add(2, 3)); // TypeError: calc.add is not a function
静态方法如何调用父类的静态方法
在子类中,可以使用 super 关键字来调用父类的静态方法。这允许子类复用父类的通用逻辑,同时保持静态方法的类级别特性。

class Base {
static greet() {
return 'Hello from Base';
}
}
class Derived extends Base {
static greet() {
return super.greet() + ' and Derived';
}
}
console.log(Derived.greet()); // Hello from Base and Derived
静态方法中 this 指向什么
在静态方法内部,this 指向调用该方法的类本身。如果通过实例调用(虽然通常不允许),this 仍然指向类,而不是实例。这使得静态方法可以访问类的其他静态成员。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











