如何定义实例属性和非实例属性

如何定义实例属性和非实例属性

在本文中,我们将尝试了解如何在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 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程