extends 关键字是 javascript 实现原型链继承的语法糖,自动建立 child 与 parent 的原型链、修正 constructor、继承静态方法;super() 初始化 this 并调用父构造函数,且支持方法和静态方法调用。

extends 关键字不是创建新继承机制,而是让 JavaScript 引擎自动完成原型链继承的关键步骤——它把手动设置原型关系、修正构造器、绑定 super 调用这些容易出错的操作,封装成一条简洁语法。
extends 自动建立原型链连接
当你写 class Child extends Parent,引擎会立即做三件事:
- 把
Child.prototype.__proto__指向Parent.prototype,使子类实例能沿原型链找到父类方法 - 确保
Child.prototype.constructor仍指向Child,而不是意外变成Parent - 把
Child.__proto__指向Parent,让静态方法也能被继承(如Child.staticMethod()可调用父类静态方法)
super() 不只是调用父构造函数
在子类 constructor 中,super() 必须出现在第一行。它的作用包括:
- 以当前子类实例为
this,执行父类构造函数,把父类初始化逻辑(比如this.name = name)挂载到该实例上 - 初始化
this的内部状态;没调用super()就访问this,会直接报ReferenceError - 支持在子类方法中用
super.methodName()调用父类同名方法,或在静态方法中用super.staticMethod()(ES2022+)
继承内容不止是实例方法extends 同时覆盖三类成员:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 实例方法和属性(通过原型链访问)
- 静态方法(通过类本身访问,如
Child.count()) -
get/set访问器(定义在原型上,自然被子类原型继承)
验证继承是否生效,可以检查这三点
-
new Child() instanceof Parent返回true -
Object.getPrototypeOf(Child.prototype) === Parent.prototype返回true - 子类实例能直接调用父类原型上的方法,比如
child.sayHello(),无需额外绑定或代理
不复杂但容易忽略
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










