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
相关推荐
穷人小水滴7 小时前
使用 epub 在手机快乐阅读
javascript·deno·科幻
ganshenml7 小时前
【Web】证书(SSL/TLS)与域名之间的关系:完整、通俗、可落地的讲解
前端·网络协议·ssl
这是个栗子8 小时前
npm报错 : 无法加载文件 npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
爱学习的程序媛9 小时前
《深入浅出Node.js》核心知识点梳理
javascript·node.js
HIT_Weston9 小时前
44、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 分析(一)
前端·ubuntu·gitlab
华仔啊9 小时前
Vue3 如何实现图片懒加载?其实一个 Intersection Observer 就搞定了
前端·vue.js
JamesGosling66610 小时前
深入理解内容安全策略(CSP):原理、作用与实践指南
前端·浏览器
不要想太多10 小时前
前端进阶系列之《浏览器渲染原理》
前端
Robet10 小时前
TS和JS成员变量修饰符
javascript·typescript
g***969010 小时前
Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
前端·npm·node.js