JavaScript类继承用extends实现,子类需通过super()调用父类构造函数且必须在this前;实例方法中用super.方法名()调用父类方法,super是语法关键字非对象。

JavaScript 中类的继承通过 extends 关键字实现,子类可复用父类的属性和方法;调用父类构造函数或方法必须使用 super(),否则会报错。
如何用 extends 实现继承
子类通过 extends 后接父类名来声明继承关系。被继承的父类可以是普通 class、内置类(如 Array、Error),甚至函数(需有 prototype)。
- 父类必须先定义,否则引用未声明错误(ReferenceError)
- 子类若定义了 constructor,必须在第一行调用 super(),否则无法访问 this
- 若子类没写 constructor,JS 会自动添加一个隐式构造函数:
constructor(...args) { super(...args); }
如何正确调用父类构造函数(super())
super() 是调用父类 constructor 的唯一方式,且必须在子类 constructor 中 this 被使用前执行。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 不传参:仅调用父类空构造函数
super() - 传参:将子类接收的参数传递给父类初始化逻辑,例如
super(name, age) - 错误示例:
this.name = name写在super()前 → 报错 "Must call super constructor"
如何在子类中调用父类的普通方法
在实例方法中,用 super.方法名() 可调用父类同名方法(包括被重写的),常用于扩展而非完全替换逻辑。
立即学习“Java免费学习笔记(深入)”;
- 只能在对象方法中使用,不能在静态方法里直接用
super.方法名()(静态方法中 super 指向父类构造函数) - 静态方法中调用父类静态方法:用
super.静态方法名()(ES2022+ 支持) - 示例:
super.sayHello()执行父类 sayHello,再追加子类逻辑
注意 this 和 super 的绑定时机
super 不是一个对象,而是语法关键字;它内部依赖当前函数的 [[HomeObject]],指向定义该方法的类。
- 箭头函数没有自己的 this 或 super,其 super 继承自外层普通函数作用域
- 不能在非类方法、普通函数或对象字面量方法中使用 super
- super() 只能在 constructor 中调用一次,多次调用会报错

















