返回
以情景化案例详细解析 TypeScript 中的类的实例成员和静态成员
前端
2023-11-28 21:52:58
TypeScript 中,类被分为两种成员:实例成员和静态成员。
实例成员
实例成员是属于类的实例的成员,在类的每个实例中都存在。可以使用点运算符(.)访问实例成员。例如,以下代码定义了一个名为 Person 的类,其中包含两个实例成员:name 和 age:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
我们可以使用以下代码创建 Person 类的实例:
const person1 = new Person("John", 30);
现在,我们可以使用点运算符访问 person1 实例的 name 和 age 属性:
console.log(person1.name); // John
console.log(person1.age); // 30
静态成员
静态成员是属于类的本身的成员,不属于类的实例。静态成员可以使用类名直接访问。例如,以下代码定义了一个名为 Person 的类,其中包含一个静态成员:count:
class Person {
static count = 0;
constructor(name: string, age: number) {
Person.count++;
}
}
我们可以使用以下代码访问 Person 类的 count 属性:
console.log(Person.count); // 0
现在,我们创建两个 Person 类的实例:
const person1 = new Person("John", 30);
const person2 = new Person("Mary", 25);
现在,Person 类的 count 属性的值为 2:
console.log(Person.count); // 2
总结
实例成员属于类的实例,可以使用点运算符访问。静态成员属于类的本身,可以使用类名直接访问。
实例成员的应用场景
实例成员通常用于存储和操作与类的实例相关的数据。例如,Person 类的 name 和 age 属性是实例成员,因为它们存储与每个 Person 实例相关的数据。
静态成员的应用场景
静态成员通常用于存储和操作与类本身相关的数据。例如,Person 类的 count 属性是静态成员,因为它存储与整个 Person 类相关的数据(即,创建了多少个 Person 实例)。