You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
class User {
static #MAX_INSTANCES = 2;
static #instances = 0;
name;
constructor(name) {
User.#instances++;
if (User.#instances > User.#MAX_INSTANCES) {
throw new Error('Unable to create User instance');
}
this.name = name;
}
}
new User('张三');
new User('李四');
new User('王五'); // throws Error
JavaScript 类用构造函数初始化实例,定义字段和方法。甚至可以使用
static
关键字在类本身上附加字段和方法。继承是使用
extends
关键字实现的:可以轻松地从父类创建子类,super
关键字用于从子类访问父类。要利用封装,将字段和方法设为私有以隐藏类的内部细节,私有字段和方法名必须以
#
开头。初始化:
constructor()
constructor(param1, param2, ...)
是用于初始化实例的类主体中的一种特殊方法。可以设置字段的初始值或进行任何类型的对象设置。字段
类字段是保存信息的变量,字段可以附加到两个实体:
字段有两种级别可访问性:
public
:该字段可以在任何地方访问private
:字段只能在类的主体中访问公共实例字段
私有实例字段
公共静态字段
定义类常量或存储特定于该类的信息
私有静态字段
隐藏静态字段的实现细节
方法
getter
和setter
模仿常规字段,但是对如何访问和更改字段具有更多控制。在尝试获取字段值时执行getter
,而在尝试设置值时使用setter
。静态方法是直接附加到类的函数,它们持有与类相关的逻辑,而不是类的实例。
继承: extends
JavaScript 中的类使用
extends
关键字支持单继承。在class Child extends Parent { }
表达式中,Child
类从Parent
继承构造函数,字段和方法。父构造函数:
constructor()
中的super()
如果希望在子类中调用父构造函数,则需要使用子构造函数中可用的
super()
特殊函数。父实例:方法中的
super
如果希望在子方法中访问父方法,可以使用特殊的快捷方式
super
。参考资料
The text was updated successfully, but these errors were encountered: