(一)javascript中class类

avatar
作者
猴君
阅读量:0

在 JavaScript 中使用 class 语法可以定义类的结构,其中可以包括静态属性/方法、私有属性/方法、公共属性/方法和受保护属性/方法。这些概念有助于封装和数据隐藏,使得代码更加模块化和安全。下面我会解释这些不同的属性和方法,以及如何在类中使用它们。

1. 静态属性和方法

静态属性和方法属于类本身而不是类的实例。这意味着你无需创建类的实例就可以访问它们。它们通常用于实现不依赖于实例状态的功能。

class MyClass {   static staticProperty = "class level property"; // 静态属性   static staticMethod() { // 静态方法     return 'I am a static method';   } }  console.log(MyClass.staticProperty); // 访问静态属性 console.log(MyClass.staticMethod()); // 调用静态方法 

2. 私有属性和方法

私有属性和方法只能在类的内部访问,它们不能从类的实例或者子类中访问。在 JavaScript 中,你可以通过 # 前缀来标记私有字段和方法。

class Example {   #privateProperty = "I am private"; // 私有属性    #privateMethod() { // 私有方法     return 'This is a private method';   }    getPrivateMethod() {     return this.#privateMethod(); // 内部访问私有方法   } }  const obj = new Example(); console.log(obj.getPrivateMethod()); // 正确访问 // console.log(obj.#privateMethod()); // 错误,外部不能访问私有方法 // console.log(obj.#privateProperty); // 错误,外部不能访问私有属性 

3. 公共属性和方法

公共属性和方法是默认的访问级别,可以从类的内部、实例以及继承的子类中访问。

class PublicExample {   publicProperty = "I am public"; // 公共属性    publicMethod() { // 公共方法     return 'This is a public method';   } }  const example = new PublicExample(); console.log(example.publicProperty); // 访问公共属性 console.log(example.publicMethod()); // 调用公共方法 

4. 受保护属性和方法

JavaScript 原生不直接支持受保护(protected)属性和方法,这些通常是只能在类及其子类中访问。不过,你可以通过约定(如使用下划线 _ 前缀)来模拟这种行为。

class ProtectedExample {   _protectedProperty = "I am protected"; // 受保护属性,约定    _protectedMethod() { // 受保护方法,约定     return 'This is a protected method';   } }  class ChildExample extends ProtectedExample {   useProtectedMethod() {     return this._protectedMethod(); // 子类访问受保护方法   } }  const child = new ChildExample(); console.log(child.useProtectedMethod()); // 正确访问 // console.log(child._protectedMethod()); // 可能访问,但不建议(违反约定) 

5. 继承

继承允许一个类继承另一个类的方法和属性,是代码重用的一个重要手段。

class Parent {   parentMethod() {     return 'Method from Parent';   } }  class Child extends Parent {   childMethod() {     return 'Method from Child';   } }  const childInstance = new Child(); console.log(childInstance.parentMethod()); // 子类实例访问继承的方法 console.log(childInstance.childMethod()); // 子类实例访问自己的方法 

通过上述示例,你可以看到如何在 JavaScript 中使用类的不同属性和方法,以及它们之间的区别。这些技术可以帮助你构建更健壮、易于维护的JavaScript应用程序。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!