javascript 中 class 中静态的用例是什么
what is the use case for static inside class in javascript
我是Javascript的初学者,不了解Class里面的静态变量或方法的概念。我不明白为什么以及何时需要它们以及它们的用例是什么?例如这个 class
class Car {
constructor(name) {
this.name = name;
}
static hello() {
return "Hello!!";
}
}
OOP(包括 classes)最近被添加到 JavaScript 中,在我看来,它更像是语法糖,可以让我们更轻松地构建数据,或者可能只是为了使用 new
关键字的满意度。这些 OOP 特性改编自其他语言,例如 Java.
静态方法允许您的代码的其他部分访问 class 中的变量和方法,而无需创建它的 实例 (不使用 new
关键词)。
当您想从 class 检索数据而不创建实例或初始化构造函数时,这尤其有用。
举个真实世界的 Web 组件示例:
class WhyStatic {
/* other methods... */
static get observedAttributes() {
return ["name", "why", "test"];
}
}
这允许自定义元素函数访问 HTML 元素的观察属性,而无需创建额外的实例。
换句话说,我们可以为 class 创建 non-instance 特定数据,该数据可以在外部访问,并且只能在 class 实例外部访问。
这就是我们在 OOP 中需要 static
的原因。
我是Javascript的初学者,不了解Class里面的静态变量或方法的概念。我不明白为什么以及何时需要它们以及它们的用例是什么?例如这个 class
class Car {
constructor(name) {
this.name = name;
}
static hello() {
return "Hello!!";
}
}
OOP(包括 classes)最近被添加到 JavaScript 中,在我看来,它更像是语法糖,可以让我们更轻松地构建数据,或者可能只是为了使用 new
关键字的满意度。这些 OOP 特性改编自其他语言,例如 Java.
静态方法允许您的代码的其他部分访问 class 中的变量和方法,而无需创建它的 实例 (不使用 new
关键词)。
当您想从 class 检索数据而不创建实例或初始化构造函数时,这尤其有用。
举个真实世界的 Web 组件示例:
class WhyStatic {
/* other methods... */
static get observedAttributes() {
return ["name", "why", "test"];
}
}
这允许自定义元素函数访问 HTML 元素的观察属性,而无需创建额外的实例。
换句话说,我们可以为 class 创建 non-instance 特定数据,该数据可以在外部访问,并且只能在 class 实例外部访问。
这就是我们在 OOP 中需要 static
的原因。