JavaScript提供了属于该类的静态方法,而不是该类的实例。因此,不需要实例来调用静态方法。这些方法直接在类本身上调用。
要点
- static关键字用于声明静态方法。
- 静态方法可以是任何名称。
- 一个类可以包含多个静态方法。
- 如果声明多个具有相似名称的静态方法,则JavaScript始终会调用最后一个。
- 可以使用静态方法来创建实用程序函数。
- 可以使用此关键字在另一个静态方法中调用一个静态方法。
- 不能直接使用此关键字在非静态方法中调用静态方法。在这种情况下,可以使用类名或作为构造函数的属性来调用静态方法。
示例1
看一个简单的静态方法示例。
<script> class Test { static display() { return "static method is invoked" } } document.writeln(Test.display()); </script>
输出:
static method is invoked
例子2
Le看到了一个调用多个静态方法的示例。
<script> class Test { static display1() { return "static method is invoked" } static display2() { return "static method is invoked again" } } document.writeln(Test.display1()+"<br>"); document.writeln(Test.display2()); </script>
输出:
static method is invoked static method is invoked again
例子3
让无涯教程看一个示例,该示例调用多个具有相似名称的静态方法。
<script> class Test { static display() { return "static method is invoked" } static display() { return "static method is invoked again" } } document.writeln(Test.display()); </script>
输出:
static method is invoked again
例子4
看一个在构造函数中调用静态方法的示例。
<script> class Test { constructor() { document.writeln(Test.display()+"<br>"); document.writeln(this.constructor.display()); }static display() { return "static method is invoked" } } var t=new Test(); </script>
输出:
static method is invoked static method is invoked
例子5
看一个在非静态方法中调用静态方法的示例。
<script> class Test { static display() { return "static method is invoked" }show() { document.writeln(Test.display()+"<br>"); }
} var t=new Test(); t.show(); </script>
输出:
static method is invoked