📜  JavaScript OOPs类(1)

📅  最后修改于: 2023-12-03 15:01:38.376000             🧑  作者: Mango

JavaScript OOPs类

JavaScript中的面向对象编程(OOP)是一种基于类和实例的编程方式。类是一个模板,用于创建实例。实例是类的具体对象,具有自己的属性和方法。

创建类

使用JavaScript创建类的语法如下所示:

class MyClass {
  constructor(property1, property2) {
    this.property1 = property1;
    this.property2 = property2;
  }

  method1() {
    console.log(this.property1);
  }

  method2() {
    console.log(this.property2);
  }
}

在以上示例代码中,我们定义了一个名为MyClass的类,并在类中定义了一个构造函数(constructor函数)和两个方法:method1method2

构造函数用于创建类的实例并初始化其属性。在构造函数中,我们将传入的参数赋值给实例的属性。

方法是类的函数,在类的实例上调用方法,将执行方法中定义的代码。

创建实例

要创建一个类的实例,我们可以使用new关键字。创建实例时,我们可以提供构造函数中定义的参数。示例如下所示:

const myInstance = new MyClass('hello', 'world');
console.log(myInstance.property1); // 输出:'hello'
console.log(myInstance.property2); // 输出:'world'
myInstance.method1(); // 输出:'hello'
myInstance.method2(); // 输出:'world'

在以上示例代码中,我们创建了名为myInstanceMyClass实例,并传入了'hello''world'作为构造函数中定义的参数。我们通过实例的属性和方法来访问和操作实例。

继承类

在JavaScript中,面向对象编程中的继承使用原型链来实现。可以通过extends关键字来继承一个类。示例如下所示:

class MySubClass extends MyClass {
  constructor(property1, property2, property3) {
    super(property1, property2);
    this.property3 = property3;
  }

  method3() {
    console.log(this.property3);
  }
}

在以上示例代码中,我们定义了一个名为MySubClass的子类,并继承了MyClass类。MySubClass类具有新的属性和方法:property3method3

要实例化子类,需要传入父类和子类的构造函数中定义的参数。示例如下所示:

const mySubInstance = new MySubClass('hello', 'world', 'again');
console.log(mySubInstance.property1); // 输出:'hello'
console.log(mySubInstance.property2); // 输出:'world'
console.log(mySubInstance.property3); // 输出:'again'
mySubInstance.method1(); // 输出:'hello'
mySubInstance.method2(); // 输出:'world'
mySubInstance.method3(); // 输出:'again'

在以上示例代码中,我们创建了名为mySubInstanceMySubClass实例,并传入了'hello''world''again'作为父类和子类构造函数中定义的参数。我们可以通过实例的属性和方法来访问和操作实例。