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

相关推荐
陈随易11 小时前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·后端·程序员
冰暮流星12 小时前
javascript之事件代理/事件委托
前端
@yanyu66613 小时前
登录注册功能-明文
vue.js·springboot
陈随易13 小时前
AI时代,你还在坚持手搓文章吗
前端·后端·程序员
里欧跑得慢15 小时前
17. Flutter Hero动画实现:让界面过渡更加优雅
前端·css·flutter·web
IT_陈寒16 小时前
Vue的这个响应式陷阱,我debug了一整天才爬出来
前端·人工智能·后端
cn_mengbei16 小时前
用React Native开发OpenHarmony应用:Reanimated共享元素过渡
javascript·react native·react.js
kyriewen16 小时前
前端测试:别为了100%覆盖率而写测试,那是自欺欺人
前端·javascript·单元测试
去伪存真16 小时前
我自己写的第一个skills--project-core-standards
前端·agent
Data_Journal16 小时前
如何使用cURL更改User Agent
大数据·服务器·前端·javascript·数据库