📅  最后修改于: 2023-12-03 15:01:38.376000             🧑  作者: Mango
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
函数)和两个方法:method1
和method2
。
构造函数用于创建类的实例并初始化其属性。在构造函数中,我们将传入的参数赋值给实例的属性。
方法是类的函数,在类的实例上调用方法,将执行方法中定义的代码。
要创建一个类的实例,我们可以使用new
关键字。创建实例时,我们可以提供构造函数中定义的参数。示例如下所示:
const myInstance = new MyClass('hello', 'world');
console.log(myInstance.property1); // 输出:'hello'
console.log(myInstance.property2); // 输出:'world'
myInstance.method1(); // 输出:'hello'
myInstance.method2(); // 输出:'world'
在以上示例代码中,我们创建了名为myInstance
的MyClass
实例,并传入了'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
类具有新的属性和方法:property3
和method3
。
要实例化子类,需要传入父类和子类的构造函数中定义的参数。示例如下所示:
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'
在以上示例代码中,我们创建了名为mySubInstance
的MySubClass
实例,并传入了'hello'
、'world'
和'again'
作为父类和子类构造函数中定义的参数。我们可以通过实例的属性和方法来访问和操作实例。