MST

星途 面试题库

面试题:JavaScript 中类的继承实现方式

请描述在 JavaScript 中,如何使用 ES6 的 class 关键字实现类的继承,给出一个包含父类和子类,且子类继承父类属性和方法的示例代码,并解释 super 关键字在其中的作用。
36.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 示例代码
// 定义父类
class Animal {
    constructor(name) {
        this.name = name;
    }
    speak() {
        console.log(`${this.name} makes a sound.`);
    }
}

// 定义子类,继承自Animal
class Dog extends Animal {
    constructor(name, breed) {
        // 调用父类的constructor方法
        super(name); 
        this.breed = breed;
    }
    bark() {
        console.log(`${this.name} (${this.breed}) barks.`);
    }
}

// 创建一个Dog实例
const myDog = new Dog('Buddy', 'Golden Retriever');
myDog.speak(); 
myDog.bark(); 
  1. super关键字的作用
    • 在子类的构造函数中,super用于调用父类的构造函数,以初始化从父类继承来的属性。在调用super之前,this关键字是不能在子类构造函数中使用的,因为子类实例还没有被正确初始化。
    • 在子类的方法中,super还可以用来调用父类的方法,这样可以在子类方法中复用父类的功能,然后根据需要进行扩展。例如,如果在Dog类中重写speak方法,并且还想保留父类speak方法的部分功能,就可以使用super.speak()