extends实现js
使用 extends 实现 JavaScript 继承
在 JavaScript 中,extends 关键字用于实现类之间的继承。通过 extends,子类可以继承父类的属性和方法,并可以扩展或重写父类的功能。
基本语法
class Parent {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, ${this.name}!`);
}
}
class Child extends Parent {
constructor(name, age) {
super(name); // 调用父类的构造函数
this.age = age;
}
greet() {
super.greet(); // 调用父类的 greet 方法
console.log(`You are ${this.age} years old.`);
}
}
const child = new Child('Alice', 10);
child.greet();
关键点说明
super关键字:在子类的构造函数中必须调用super(),否则会报错。super用于调用父类的构造函数或方法。- 方法重写:子类可以重写父类的方法,同时通过
super.methodName()调用父类的原始方法。 - 继承链:
extends支持多级继承,子类可以进一步被其他类继承。
继承内置对象
extends 也可以用于继承 JavaScript 内置对象(如 Array、Error 等)。

class CustomArray extends Array {
getFirst() {
return this[0];
}
getLast() {
return this[this.length - 1];
}
}
const arr = new CustomArray(1, 2, 3);
console.log(arr.getFirst()); // 1
console.log(arr.getLast()); // 3
注意事项
- 子类的
constructor必须调用super(),否则会抛出错误。 - 静态方法也会被继承,可以通过
super调用父类的静态方法。 extends右侧可以是任何具有prototype属性的表达式(如函数、类等)。






