JavaScript 继承有两种主要方法:原型式继承和构造函数继承。原型式继承通过将子对象的原型指向父对象来实现继承,而构造函数继承通过在子级构造函数中调用父级构造函数来实现。原型式继承更简单、更灵活,而构造函数继承提供了更明确的继承关系。

JS 继承
如何在 JavaScript 中实现继承?
JavaScript 是一种面向对象的语言,但它不支持传统的基于类的继承。为了实现继承,JavaScript 使用了以下两种主要方法:
1. 原型式继承
- 创建一个对象作为父级对象。
- 创建子对象,并将其原型指向父级对象。
- 子对象将继承父级对象的所有属性和方法。
// 父级对象
const Parent = {
name: "John",
age: 30,
greet() {
console.log(`Hello, my name is ${this.name}.`);
}
};
// 子对象
const Child = Object.create(Parent);
Child.name = "Jane";
Child.greet(); // 输出 "Hello, my name is Jane."2. 构造函数继承
- 创建一个父级构造函数。
- 创建子级构造函数,并调用父级构造函数来初始化子级实例。
- 在子级构造函数中,添加子级特有的属性和方法。
// 父级构造函数
function Parent(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log(`Hello, my name is ${this.name}.`);
};
}
// 子级构造函数
function Child(name, age, school) {
Parent.call(this, name, age); // 调用父级构造函数
this.school = school; // 子级特有属性
}
// 创建子级实例
const child = new Child("Jane", 25, "ABC School");
child.greet(); // 输出 "Hello, my name is Jane."
child.school; // 输出 "ABC School"选择哪种继承方式取决于特定需求:
- 原型式继承更简单、更灵活。
- 构造函数继承提供了更明确的继承关系,并且子级构造函数可以访问父级构造函数的参数。










