类 Class
- 类(Class)是面向对象编程中的一种重要概念,用于定义对象的结构和行为。类可以看作是对象的蓝图或模板,通过实例化类可以创建具体的对象。
- 在JavaScript中,类的引入是通过ES6(ECMAScript 2015)引入的。它提供了一种更简洁和直观的方式来定义和创建对象。
基本语法:
class ClassName {
constructor() {
}
method1() {
}
method2() {
}
}
- 类由关键字
class 开头,后面跟着类名(ClassName)。类名通常采用驼峰命名法,首字母大写。
- 类中的构造函数使用
constructor 关键字定义。构造函数在创建类的实例时被调用,用于初始化对象的属性。可以在构造函数中接受参数,并在实例化时传递相应的值给这些参数。
- 类中的方法定义直接写在类体内部。方法可以访问类的属性和其他方法。方法使用普通的函数语法来定义。
- 要创建类的实例,可以使用
new 关键字加上类名,并传递构造函数所需的参数。例如:
const obj = new ClassName();
示例:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
const person = new Person('John', 25);
person.sayHello();
- 上述示例中,
Person 类表示人的概念,具有 name 和 age 属性,以及 sayHello 方法。通过实例化 Person 类,我们创建了一个名为 person 的对象,并调用了 sayHello 方法。
类的继承 extends
- 类可以继承其他类,通过
extends 关键字实现。子类可以继承父类的属性和方法,并可以添加自己特有的属性和方法。继承可以实现代码的复用和扩展性。
基本语法:
class ChildClass extends ParentClass {
constructor() {
super();
}
childMethod() {
}
}
- 在子类的类定义中,使用
extends 关键字后面跟着父类的名称(ParentClass)。子类可以继承父类的属性和方法,并可以添加自己的属性和方法。
- 在子类的构造函数中,使用
super 关键字调用父类的构造函数。这是为了在子类的实例化过程中初始化父类的属性。需要注意的是,在使用 super 调用父类构造函数之前,不能使用 this 关键字。
示例:
class Animal {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello, I'm ${this.name}`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
bark() {
console.log('Woof Woof!');
}
}
const dog = new Dog('Buddy', 'Labrador');
dog.sayHello();
dog.bark();
- 在上述示例中,
Animal 是父类,Dog 是子类。Dog 类继承了 Animal 类,并通过 super 调用了父类的构造函数,以初始化继承的属性。子类还添加了自己的方法 bark。
- 通过继承,子类可以共享父类的属性和方法,同时还可以添加自己特有的属性和方法。这使得代码的重用和扩展更加方便和灵活。