MST
星途 面试题库

面试题:JavaScript 中如何通过原型链实现面向对象的继承

请用代码示例说明在 JavaScript 里,如何基于原型链的方式实现一个简单的面向对象继承结构,比如有一个父类 `Animal` ,有 `name` 属性和 `speak` 方法,子类 `Dog` 继承 `Animal` 并新增 `bark` 方法。
47.6万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
// 定义父类 Animal
function Animal(name) {
    this.name = name;
}

Animal.prototype.speak = function() {
    console.log(this.name +'makes a sound.');
};

// 定义子类 Dog
function Dog(name) {
    // 调用父类构造函数初始化 name 属性
    Animal.call(this, name);
}

// 设置 Dog 的原型为 Animal 的实例,建立原型链继承关系
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

// 新增 bark 方法
Dog.prototype.bark = function() {
    console.log(this.name +'barks.');
};

// 测试代码
const myDog = new Dog('Buddy');
myDog.speak(); 
myDog.bark();