第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

想要實(shí)現(xiàn)一個(gè)class Lazing 函數(shù),輸出如下該怎么寫?

想要實(shí)現(xiàn)一個(gè)class Lazing 函數(shù),輸出如下該怎么寫?

慕神8447489 2018-07-13 11:07:17
Lazing('Garry')// 輸出 'hello Garray'Lazing('Garry').sleep(10).eat('rice')// 輸出 'hello Garray'// 等待10秒...// 輸出 'eating rice'Lazing('Garry').eat('rice').eat('bread')// 輸出 'eating rice'// 輸出 'eating bread'Lazing('Garry').sleepFirst(5).eat('rice')// 等待5秒...// 輸出 'hello Garray'// 輸出 'eating rice'難點(diǎn)是定時(shí)器該怎么處理?如果sleepFirst定時(shí)器是后置的怎么來實(shí)現(xiàn)?Lazing('Garry').eat('rice').sleepFirst(5)// 等待5秒...// 輸出 'hello Garray'// 輸出 'eating rice'
查看完整描述

2 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

粗略的demo,定時(shí)器放在后面老衲一時(shí)想不通,此demo按順序執(zhí)行

var Lazing2 = function(name){    return {        _name : name,        _food : [],        _timeLimit : 0,        eat : function(food){            var _this = this;
            setTimeout(function(){                console.log(_this._name,'吃',food)
            },_this._timeLimit*1000);            return _this
        },        delay : function(time){            var _this = this;
            _this._timeLimit = time;            return _this;
        }
    }
}

Lazing2("老衲").eat('蛋糕').delay(3).eat('屎');


查看完整回答
反對 回復(fù) 2018-07-15
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

總體思路就是 構(gòu)造一個(gè)任務(wù)隊(duì)列

class Lazing {  constructor(item = '') {    this.queue = [{
        key: 'init',        val() {
          console.log('hello ' + item)
        }
      }]
  }

  eat(item) {    this.queue.push({
      key: 'eat',      val() {
        console.log('eating ' + item)
      }
    })    return this
  }

  sleep(time) {    this.queue.push({
      key: 'sleep',      val: time * 1000
    })    return this
  }

  sleepFirst(time) {    this.queue.unshift({
      key: 'sleep',      val: time * 1000
    })    return this
  }

  exec() {    for (let i = 0; i < this.queue.length; i++) {
      let key = this.queue[i]['key']
      let val = this.queue[i]['val']      if (key === 'sleep') {        this.queue.shift()
        setTimeout(this.exec.bind(this), val)        break
      } else {        val()        this.queue.shift()
        i--
      }
    }
  }
}

不過調(diào)用方式稍微不一樣些,但能達(dá)到效果

new Lazing('Garry').exec()new Lazing('Garry').sleep(3).eat('rice').exec()new Lazing('Garry').eat('rice').eat('bread').exec()new Lazing('Garry').sleepFirst(3).eat('rice').exec()new Lazing('Garry').eat('rice').sleepFirst(3).exec()


查看完整回答
反對 回復(fù) 2018-07-15
  • 2 回答
  • 0 關(guān)注
  • 495 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號