ES派生类的prototype方法中,不能访问super的解决方案

1 下面的B.prototype.compile方法中,无法访问super

javascript 复制代码
class A {
  compile() {
    console.log('A')
  }
}

class B extends A {
  compile() {
    super.compile()
    console.log('B')
  }
}

B.prototype.compile = function() {
  super.compile() // 报错,不可以在此处使用super
  console.log('B2')
} 

const b = new B()
b.compile() // A B2

2 替代方法如下

javascript 复制代码
class A {
  compile() {
    console.log('A')
  }
}

class B extends A {
  compile() {
    super.compile()
    console.log('B')
  }
}

B.prototype.compile = function() {
  A.prototype.compile.call(this) // 替代super
  console.log('B2')
} 

const b = new B()
b.compile() 

// A 
// B2
相关推荐
404NotFound30525 分钟前
基于 Vue 3 和 Guacamole 搭建远程桌面(利用RDP去实现,去除vnc繁琐配置)
前端
咚咚咚ddd27 分钟前
AI 应用开发:Agent @在线文档功能 - 前端交互与设计
前端·aigc·agent
旧梦吟29 分钟前
脚本工具 批量md转html
前端·python·html5
ohyeah30 分钟前
React 中兄弟组件通信的最佳实践:以 Todo 应用为例
前端
WebRuntime39 分钟前
问世间,exe是何物?直教AI沉默、Web寡言(1)
javascript·c#·.net·web
岁月宁静41 分钟前
一个 AI 聊天功能,背后至少 8 个你没想到的工程细节
前端·vue.js·aigc
一字白首1 小时前
Vue3 入门,从项目创建到组合式 API 全解析(含 provide/inject)
前端·javascript·vue.js
无限大61 小时前
为什么键盘有"机械"和"薄膜"之分?——按键的触感革命
前端
不会飞的鲨鱼1 小时前
抖音验证码滑动轨迹原理(续)
javascript·爬虫·python