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
相关推荐
Hacker_seagull2 分钟前
Chrome安装代理插件ZeroOmega(保姆级别)
前端·chrome
石小石Orz5 分钟前
因为没有使用路由懒加载,产生了一个难以寻找的bug
前端
Mintopia6 分钟前
Three.js 力导向图:让数据跳起优雅的华尔兹
前端·javascript·three.js
墨渊君21 分钟前
React Native 跨平台组件库实践: GlueStack UI 上手指南
前端
晓得迷路了28 分钟前
栗子前端技术周刊第 84 期 - Vite v7.0 beta、Vitest 3.2、Astro 5.9...
前端·javascript·vite
独立开阀者_FwtCoder31 分钟前
最全301/302重定向指南:从SEO到实战,一篇就够了
前端·javascript·vue.js
Moment41 分钟前
给大家推荐一个超好用的 Marsview 低代码平台 🤩🤩🤩
前端·javascript·github
小满zs44 分钟前
Zustand 第三章(状态简化)
前端·react.js
普宁彭于晏1 小时前
元素水平垂直居中的方法
前端·css·笔记·css3
恋猫de小郭1 小时前
为什么跨平台框架可以适配鸿蒙,它们的技术原理是什么?
android·前端·flutter