在 ES2019 中,类的新特性进一步提高了 JavaScript 中面向对象编程的能力。本文将介绍 ES2019 中类的新特性,包括私有成员、静态成员、公共字段属性等,并提供示例代码。
私有成员
在 ES2019 中,我们可以使用井号(#)来定义私有成员。私有成员只能在类内部访问,外部无法访问。
// javascriptcn.com 代码示例 class Person { #name = 'Jack'; getName() { return this.#name; } } const person = new Person(); console.log(person.#name); // SyntaxError console.log(person.getName()); // 'Jack'
在上面的代码中,我们使用井号来定义了一个私有成员 #name
,并在类的方法 getName
中访问了它。在外部,我们无法直接访问私有成员 #name
,会抛出 SyntaxError
错误。
静态成员
在 ES2019 中,我们可以使用 static
关键字来定义静态成员。静态成员不属于实例,而是属于类本身,可以通过类名直接访问。
// javascriptcn.com 代码示例 class Person { static #count = 0; static getCount() { return Person.#count; } constructor(name) { this.name = name; Person.#count++; } } const person1 = new Person('Jack'); const person2 = new Person('Tom'); console.log(Person.getCount()); // 2
在上面的代码中,我们使用 static
关键字来定义了一个静态成员 #count
,并在类的构造函数中让它自增。在静态方法 getCount
中,我们访问了静态成员 #count
,并返回了它的值。
公共字段属性
在 ES2019 中,我们可以使用 class
关键字直接定义类的属性,而无需在构造函数中定义。
class Person { name = 'Jack'; } const person = new Person(); console.log(person.name); // 'Jack'
在上面的代码中,我们直接在类中定义了一个公共字段属性 name
,并在实例化时给它赋值。在实例中,我们可以直接访问公共字段属性 name
。
总结
ES2019 中的类的新特性进一步提高了 JavaScript 中面向对象编程的能力。通过私有成员、静态成员、公共字段属性等,我们可以更好地封装和组织代码。在实际开发中,我们可以根据具体需求选择合适的类的新特性,提高代码的可读性和维护性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6559c9e5d2f5e1655d437d3c