zoukankan      html  css  js  c++  java
  • 要求设计 LazyMan 类,实现以下功能

    LazyMan('Tony');
    // Hi I am Tony
    
    LazyMan('Tony').sleep(10).eat('lunch');
    // Hi I am Tony
    // 等待了10秒...
    // I am eating lunch
    
    LazyMan('Tony').eat('lunch').sleep(10).eat('dinner');
    // Hi I am Tony
    // I am eating lunch
    // 等待了10秒...
    // I am eating diner
    
    LazyMan('Tony').eat('lunch').eat('dinner').sleepFirst(5).sleep(10).eat('junk food');
    // Hi I am Tony
    // 等待了5秒...
    // I am eating lunch
    // I am eating dinner
    // 等待了10秒...
    // I am eating junk food
    
    class LazyManClass {
        constructor(name) {
            this.taskList = [];
            this.name = name;
            console.log(`Hi I am ${this.name}`);
            setTimeout(() => {
                this.next();
            }, 0);
        }
        eat (name) {
            var that = this;
            var fn = (function (n) {
                return function () {
                    console.log(`I am eating ${n}`)
                    that.next();
                }
            })(name);
            this.taskList.push(fn);
            return this;
        }
        sleepFirst (time) {
            var that = this;
            var fn = (function (t) {
                return function () {
                    setTimeout(() => {
                        console.log(`等待了${t}秒...`)
                        that.next();
                    }, t * 1000);  
                }
            })(time);
            this.taskList.unshift(fn);
            return this;
        }
        sleep (time) {
            var that = this
            var fn = (function (t) {
                return function () {
                    setTimeout(() => {
                        console.log(`等待了${t}秒...`)
                        that.next();
                    }, t * 1000); 
                }
            })(time);
            this.taskList.push(fn);
            return this;
        }
        next () {
            var fn = this.taskList.shift();
            fn && fn();
        }
    }
    function LazyMan(name) {
        return new LazyManClass(name);
    }
    LazyMan('Tony').eat('lunch').eat('dinner').sleepFirst(5).sleep(4).eat('junk food');
    
  • 相关阅读:
    hdu 1392 凸包周长
    hdu 1847
    时间管理101招
    祝大家端午节快乐
    激励员工的二十种非经济手段
    Web2.0个人桌面
    回顾Windows系列的OEM版本历史
    什么是电子商务
    解析3G软件人才成功之道
    成功者应具备的八个心态
  • 原文地址:https://www.cnblogs.com/fazero/p/11653722.html
Copyright © 2011-2022 走看看