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