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
相关推荐
Rain50920 小时前
mini-cc 的 MCP 协议:给 AI 装个 USB-C 接口
c语言·开发语言·前端·人工智能·架构·node.js·ai编程
向量引擎21 小时前
从零起步,如何打造专属向量引擎 API 中转工作流?
java·服务器·前端
丷丩21 小时前
MapLibre GL JS第27课:添加COG栅格源
javascript·map·mapbox·maplibre gl js
IT_陈寒1 天前
Vue这个动态响应坑把我整不会了
前端·人工智能·后端
bestlanzi1 天前
使用nvm管理node环境
前端·vue.js·npm
SomeOtherTime1 天前
Geojson相关(AI回答)
java·前端·python
不好听6131 天前
JavaScript 到底是怎么运行的?从编译阶段到执行上下文全面解析
javascript
丷丩1 天前
MapLibre GL JS第29课:添加Canvas源
javascript·gis·map·mapbox·maplibre gl js
就叫_这个吧1 天前
HTML常用标签及举例使用
前端·html
utf8mb4安全女神1 天前
【rsyslog服务】把所有服务的“临界点”以上的错误都保存在/var/log/alert.log⽇志中
java·前端·javascript