国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LazyMan

Winer / 2321人閱讀

實現函數LazyMan,使得:

LazyMan("Hank"); 輸出
Hi Hank!

LazyMan("Hank").eat("dinner");輸出
Hi Hank!
Eat dinner!

LazyMan("Hank").sleep(5).eat("dinner"); 輸出
Hi Hank!
//等待五秒
Eat dinner!

LazyMan("Hank").sleepFirst(5).eat("dinner");輸出
//等待五秒
Hi Hank!
Eat dinner!

實現代碼:


function LazyMan(name) {
    lp.taskList.push("Hi " + name + "!");
    return lp.exe();
}

var lp = LazyMan.prototype;

lp.taskList = [];     

lp.eat = function(v) {
    lp.taskList.push("Eat " + v + "!");
    return lp.exe();
}


lp.sleep = function(t) {
    lp.taskList.push("sleep " + t);
    return lp.exe();

}

lp.sleepFirst = function(t) {
    lp.taskList.unshift("sleep " + t);
    return lp.exe();
}

lp.taskStart = false;

lp.exe = function() {
    var that = this;
    if(!lp.taskStart) {
        lp.taskStart = true;
        setTimeout(function() {
            doTask(lp.taskList);
            that.taskList = [];
        }, 0);
    }
    return lp;
}


function doTask(taskList) {
    if(taskList.length) {
        var task = taskList.shift();
        if(task.indexOf("sleep") !== -1) {
            var match = task.split(" ");
            var t = parseInt(match[1]);
            setTimeout(function(){
                doTask(taskList);
            }, t * 1000);
        } else {
            console.log(task);
            doTask(taskList);
        }
    }
}

// LazyMan("Hank");
// LazyMan("Hank").eat("dinner");
// LazyMan("Hank").sleep(5).eat("dinner");
LazyMan("Hank").sleepFirst(5).eat("dinner");


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88183.html

相關文章

  • 實現Lazyman

    摘要:前言之前在掘金上到一篇文章關于微信面試的文章,其中提到了手動實現的問題。看起來好像挺有趣的,我們來分析以下分析首先我們看到例子有幾個特點,一個是我們調用的時候不需要用到關鍵字,這意味著我們需要使用工廠函數另一個是要我們實現鏈式調用。 前言 之前在掘金上到一篇文章關于微信面試的文章,其中提到了手動實現Lazyman的問題。剛開始看到Lazyman我是一臉懵逼的,這是什么鬼,后來查了查了一...

    Tonny 評論0 收藏0
  • 關于lazyman你還應該知道這幾件事

    摘要:首先我們來講這個棧在中,每當有函數被執行的時候都會在當前的執行堆棧中創建一個新的堆棧幀,并放到棧頂。因為是鏈式調用,所以代碼一直在同一個作用于中執行,也就是說當前的堆棧幀一直沒有被移出棧。 前言 前幾天在稀土上看到一篇面試的帖子,里面微信有一道題是lazyman的實現,具體要做的事情就是 LazyMan(Hank) //Hi! This is Hank! LazyMan(Hank)....

    未東興 評論0 收藏0
  • 如何實現一個 LazyMan?

    摘要:實現一個,可以按照以下方式調用輸出輸出等待秒輸出輸出等待秒以此類推。這是典型的流程控制,問題的關鍵是如何實現任務的順序執行。 實現一個LazyMan,可以按照以下方式調用: LazyMan(Hank)輸出: Hi! This is Hank! LazyMan(Hank).sleep(10).eat(dinner)輸出 Hi! This is H...

    diabloneo 評論0 收藏0
  • 如何實現一個 LazyMan?

    摘要:實現一個,可以按照以下方式調用輸出輸出等待秒輸出輸出等待秒以此類推。這是典型的流程控制,問題的關鍵是如何實現任務的順序執行。 實現一個LazyMan,可以按照以下方式調用: LazyMan(Hank)輸出: Hi! This is Hank! LazyMan(Hank).sleep(10).eat(dinner)輸出 Hi! This is H...

    frank_fun 評論0 收藏0
  • LazyMan代碼實現

    摘要:只需要返回對象本身就可以了。這里只實現一個示例實現鏈式調用從隊列頭部插入最后一步封裝還有一個大家可以來試一試。如果有想法的話歡迎提出大家交流一下 ES5實現LazyMan lazyman主要原理是: 需要一個隊列保存將要用到的事件 利用閉包將事件保存至隊列中 創建一個中間件next用來觸發事件 鏈式調用 使用lazyman需要實現的場景: LazyMan(Tom); // my n...

    yhaolpz 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<