lazyman

作者: TX_30b6 | 来源:发表于2019-10-18 00:39 被阅读0次

实现一个LazyMan,可以按照以下方式调用:

LazyMan(“Hank”)

输出:Hi! This is Hank!

LazyMan(“Hank”).sleep(10).eat(“dinner”)

输出Hi! This is Hank!

//等待10秒..

Wake up after 10

Eat dinner~

LazyMan(“Hank”).eat(“dinner”).eat(“supper”)

输出

Hi This is Hank!Eat dinner~

Eat supper~

LazyMan(“Hank”).sleepFirst(5).eat(“supper”)

输出

//等待5秒

Wake up after 5

Hi This is Hank!

Eat supper

以此类推。

function Lazyman(name) {

const self = this;

self.tasks = [];

let fn = (function (n) {

let name = n

    return function () {

console.log(`Hi This is ${name}`);

self.next();

}

})(name);

self.tasks.push(fn);

setTimeout(function () {

self.next();

},0);

}

Lazyman.prototype = {

next() { 

const self = this;

let fn = self.tasks.shift();

fn && fn();

},

sleep(time) {

const self = this;

let fn = (function (time) {

return function () {

setTimeout(function () {

console.log(`Wake up after ${time}`)

self.next();

},time * 1000)

}

})(time);

self.tasks.push(fn);

return self;

},

eat(food) {

const self = this;

let fn = (function (food) {

return function () {

console.log(`Eat ${food}~`)

self.next()

}

})(food);

self.tasks.push(fn);

return self;

},

run(num) {

const self = this;

let fn = (function (num) {

return function () {

console.log(`Run ${num}~`);

self.next();

}

})(num);

self.tasks.push(fn);

return self;

},

fistSleep(time) {

const self = this

    let fn = function (time) {

return function () {

setTimeout(function () {

console.log(`sleep ${time}`)

self.next()

}

,time * 1000)

}

}(time)

self.tasks.unshift(fn)

return self

  }

}

function _lazyman(name) {

return new Lazyman(name);

}

_lazyman('lay-man').sleep(2).eat('mian').run(1100).fistSleep(3);

相关文章

  • js重点与难点(转)

    javascript LazyMan实现LazyMan(什么是LazyMan?请自行google)function...

  • LazyMan的实现

    题目介绍 实现一个 LazyMan,可以按照以下方式调用:LazyMan("Hank") 输出:Hi! This ...

  • lazyman

    实现一个LazyMan,可以按照以下方式调用:LazyMan(“Hank”)输出:Hi! This is Hank...

  • LazyMan 实现...

    // 实现一个LazyMan,可以按照以下方式调用:// LazyMan(“Hank”)输出:// Hi! Thi...

  • 实现一个LazyMan

    实现一个 LazyMan,可以按照以下方式调用:LazyMan("Hank")输出:Hi! This is Han...

  • LazyMan

  • LazyMan

  • LazyMan 自己的笨办法

    LazyMan 自己的笨办法 看了LazyMan,先用自己的笨办法写了个,只是为了实现功能,其他要求都没达到 本人...

  • lazyman 实现

    function _lazyman(name) {this.tasks = [];var self = this;...

  • LazyMan的深入解析和实现

    一、题目介绍 以下是我copy自网上的面试题原文: 实现一个LazyMan,可以按照以下方式调用:LazyMan(...

网友评论

      本文标题:lazyman

      本文链接:https://www.haomeiwen.com/subject/apkbmctx.html