JavaScript 静态方法
JavaScript提供了属于类而不是类的实例的静态方法。因此,不需要实例来调用静态方法。这些方法直接在类本身上调用。
记住的要点
- 使用static关键字声明静态方法。
- 静态方法可以有任何名称。
- 一个类可以包含多个静态方法。
- 如果我们用相似的名称声明多个静态方法,JavaScript总是调用最后一个。
- 静态方法可用于创建实用函数。
- 我们可以使用this关键字在另一个静态方法中调用静态方法。
- 我们无法直接使用this关键字在非静态方法中调用静态方法。在这种情况下,我们可以使用类名或构造函数的属性来调用静态方法。
示例1
让我们看一个静态方法的简单示例。
<script>
class Test
{
static display()
{
return "static method is invoked"
}
}
document.writeln(Test.display());
</script>
输出:
static method is invoked
示例2
让我们看一个调用多个静态方法的示例。
<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