You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

默认函数参数学习遇派生类super构造函数调用报错如何解决?

报错产生原因

这个报错是ES6类继承的强制规则触发的,和你学习默认函数参数的场景关联,大概率是你在写带默认参数的子类构造函数时,代码顺序不符合要求:

  • 所有使用extends继承父类的派生类(子类),构造函数中必须先调用super()执行父类的构造逻辑,完成this的初始化之后,才能访问this或者执行return操作
  • 你在配置默认函数参数时,大概率误将依赖this的赋值、参数校验等逻辑放在了super()调用之前,就会触发该报错

举个常见的错误写法示例:

class Base {}
class Sub extends Base {
  // 构造函数设置了参数默认值
  constructor(count = 10) {
    // 还没调用super就访问this,直接触发报错
    this.count = count
    super()
  }
}

正确的调整方式是把super()放到构造函数最顶部执行:

class Base {}
class Sub extends Base {
  constructor(count = 10) {
    // 先调用super完成this初始化
    super()
    this.count = count
  }
}
相关内容学习方向
  • 先完整学习ES6 Class类的继承规则,重点掌握super关键字的调用要求、可使用的场景边界
  • 结合默认函数参数的语法特性,明确默认参数的求值时机,避免在super执行前调用依赖this的默认值逻辑
  • 可以通过编写不同场景的类继承测试Demo,验证代码顺序对执行结果的影响,强化对规则的记忆

内容的提问来源于stack exchange,提问作者Lama's

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:45:04