super是受限的语法引用,仅可在类方法中访问父类prototype上的方法,不能访问实例属性、静态方法中的实例方法、赋值、解构或传参,箭头函数中禁用。

super 在 JavaScript 中不能直接“引用父类实例”,它只是访问父类原型上方法的语法通道,且有明确边界和限制。
只能访问父类 prototype 上的方法
在子类实例方法中写 super.methodName(),JS 引擎只从父类的 prototype 开始查找,不会继续向上遍历整个原型链,也不会检查父类实例自身的属性或方法(比如在父类 constructor 里挂到 this 上的函数)。
- 如果父类 prototype 上没有该方法,表达式返回 undefined;调用时才报 TypeError
- 父类实例方法若定义在 this 上(非 prototype),super.xxx 完全不可见
不能在静态方法中访问实例方法
静态方法里的 super 指向父类构造函数本身,不是父类实例,因此 super.instanceMethod() 是非法语法,会直接报错。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 想复用父类实例逻辑?需通过创建实例调用,例如 new Parent().instanceMethod()
- 静态方法中仅支持 super.staticMethod() 这类对父类静态成员的调用
不支持赋值、解构或作为参数传递
super 不是对象变量,它是一种受限的引用语法:
- super.xxx = val 实际等价于 this.xxx = val,赋值目标始终是当前子类实例
- 不能写 const { x } = super 或 typeof super,会报 SyntaxError
- 不能把 super 当作参数传给其他函数,也不可被 return 或赋值给变量
箭头函数和普通函数中禁用
super 只能在类的方法(含 getter/setter、async 方法)内部使用:
- 箭头函数不绑定自己的执行上下文,无法拥有独立的 super 绑定
- 事件回调、setTimeout 回调、Object.assign 的映射函数等外部函数中,super 语法不合法
- 即使外层是类方法,箭头函数内也不能单独使用 super —— 它只会继承外层的 super 值(若有),否则报错
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










