实现一个英雄类Hero

原文

使用原生JS实现一个英雄类Hero, 可以按照以下方式调用(考察点: JavaScript流程控制)

  • Hero("37FEer")输出:
    • Hi!This is 37FEer!
  • Hero("37FEer").kill(1).recover(30)输出:
    • Hi!This is 37FEer!
    • Kill 1 bug (注意:数量1个,所以bug是单数);
    • Recover 30 bloods;
  • Hero("37FEer").sleep(10).kill(2)输出:
    • Hi!This is 37FEer!
    • // 等待10秒..
    • Kill 2 bugs(注意:数量2个,所以bugs是复数);
class Hero {
    constructor(name) {
      this.name = name
      this.sum = 0
      this.promise = Promise.resolve()
    }

    sleep(time) {
      this.promise = this.promise.then(function () {
        console.log('在床上睡' + time + '毫秒...')
        return new Promise(function (resolve) {
          setTimeout(resolve, time)
        })
      })
      return this
    }

    kill(num) {
      const that = this
      this.promise = this.promise.then(function () {
        that.sum += num
        console.log(`${that.name} 已干掉 ${that.sum} 只怪兽!`)
        return Promise.resolve()
      })
      return this
    }
  }
  const hero = new Hero('超人');
  hero
    .kill(3)
    .sleep(100000)
    .kill(4)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容