如何定义实例属性和非实例属性
在本文中,我们将尝试了解如何在JavaScript中定义以及创建实例属性和非实例属性。
在分析实例属性和非实例属性之前,让我们先看一下在JavaScript中创建类的以下语法,因为实例属性和非实例属性都定义在类本身上。
语法:
class class_name {
constructor() {
// 变量.....
// 或者....
// 方法.....
}
// 其他变量或方法.....
}
现在我们已经看到了一个我们可以用于在JavaScript中创建类的基本结构/语法,让我们使用这个语法来理解和创建基于类的实例属性和非实例属性。
以下是使用上述语法创建的静态类的示例(注意,在下面的示例中,我们不会访问类内部声明的任何变量,这只是一个用于理解的演示类)。
class Car {
constructor () {
this.car_name = "Ford";
}
}
实例属性:
- 实例属性是在任何类内部定义的属性,需要使用类名本身创建的实例。
- 没有创建类的实例,我们可能无法访问这些在类内部定义的属性。
- 即使我们尝试在未创建类的实例的情况下访问这些属性,我们可能会得到一个输出为“undefined”的结果,说明用户正在尝试搜索的特定类没有定义这个特定属性。
示例: 以下示例将帮助我们更好、更有效地理解上述事实-
<script>
class Person {
constructor() {
this.Name = "ABCD";
}
}
let person = new Person();
console.log(person.Name); // 输出: ABCD
console.log(Person.Name); // 输出: undefined
</script>
输出:
ABCD
undefined
非实例属性:
- 非实例属性是在任何类内部定义的属性,不需要类的任何实例来访问它们。
- 只需要使用类名后跟属性名就可以直接访问它们。
- 这里需要注意的一件重要的事情是,这些属性是通过使用“static”关键字声明的,这些属性不能在默认构造方法内部声明。
示例: 以下示例将帮助我们更好、更有效地理解上述事实-
<script>
class Person {
static Name = "ABCD";
}
let person = new Person();
console.log(person.Name); // 输出: undefined
console.log(Person.Name); // 输出: ABCD
</script>
输出:
undefined
ABCD
阅读更多:JavaScript 教程