js class定义类,私有属性,类继承,子类访问父类的方法,重写父类的方法

1.使用#定义私有属性

2.使用extends实现类继承

3.使用子类使用super访问父类的方法

4.子类可以重新父类的方法

javascript 复制代码
      class People {
        #hisroy = []
        getHistroy() {
          return [...this.#hisroy]
        }
        addHisroy(message) {
          this.#hisroy.push({
            role: 'user',
            message,
          })
          this.addHisroy2(message)
        }
        addHisroy2(message) {
          this.#hisroy.push({
            role: 'robot',
            message: 'Robot:' + message,
          })
        }
        addHisroy3(message) {
          this.#hisroy.push({
            role: 'user',
            message,
          })
        }
        clearHistory() {
          this.#hisroy = []
        }
      }
      class Student extends People {
        addHisroy(message) {
          if (message.includes('weather')) {
            super.addHisroy3(message)
            super.addHisroy2('天气晴朗')
          } else {
            super.addHisroy(message)
          }
        }
      }
      let p1 = new People()
      p1.addHisroy('hello')
      console.log(p1.getHistroy())
      p1.clearHistory()
      console.log(p1.getHistroy())

      let t1 = new Student()
      t1.addHisroy('hello')
      console.log(t1.getHistroy())
      t1.addHisroy('what is the weather?')
      console.log(t1.getHistroy())
      t1.clearHistory()
      console.log(t1.getHistroy())

https://www.kancloud.cn/fundebug/fundebug-blog/1039647

https://jamie.build/javascripts-new-private-class-fields.html

相关推荐
SUPER526615 小时前
FastApi项目启动失败 got an unexpected keyword argument ‘loop_factory‘
java·服务器·前端
sanx1815 小时前
专业电竞体育数据与系统解决方案
前端·数据库·apache·数据库开发·时序数据库
你的人类朋友18 小时前
【Node】认识一下Node.js 中的 VM 模块
前端·后端·node.js
Cosolar18 小时前
FunASR 前端语音识别代码解析
前端·面试·github
@大迁世界20 小时前
Vue 设计模式 实战指南
前端·javascript·vue.js·设计模式·ecmascript
芭拉拉小魔仙21 小时前
Vue项目中如何实现表格选中数据的 Excel 导出
前端·vue.js·excel
jump_jump21 小时前
妙用 localeCompare 获取汉字拼音首字母
前端·javascript·浏览器
U.2 SSD21 小时前
Echarts单轴坐标系散点图
前端·javascript·echarts
不做无法实现的梦~21 小时前
jetson刷系统之后没有浏览器--解决办法
开发语言·javascript·ecmascript