美文网首页
lazyman 实现

lazyman 实现

作者: heachou | 来源:发表于2017-04-07 16:00 被阅读0次

<pre>
function _lazyman(name) {
this.tasks = [];
var self = this;
var fn = function() {
console.log("hi this is " + name);
self.next();
}
this.tasks.push(fn);
setTimeout(function() {
self.next();
}, 0);
}
// 实现next
_lazyman.prototype.next = function() {
// body...
var fn = this.tasks.shift();
fn && fn();
};
_lazyman.prototype.eat = function(name) {
// body...
var self = this;
var fn = function() {
console.log("eat " + name + " ~");
self.next();
}
this.tasks.push(fn);
// 链式调用
return this;
};
_lazyman.prototype.sleep = function(time) {
// body...
var self = this;
var fn = function() {
setTimeout(function() {
console.log("sleep " + time + "s ~");
self.next();
}, time * 1000);
}
this.tasks.push(fn);
// 链式调用
return this;
};
_lazyman.prototype.sleepFirst = function(time) {
// body...
var self = this;
var fn = function() {
setTimeout(function() {
console.log("sleepFirst " + time + "s ~");
self.next();
}, time * 1000);
}
// unshift
this.tasks.unshift(fn);
// 链式调用
return this;
};
// 封装
function LazyMan(name) {
return new _lazyman(name);
}
</pre>
调用:
<code>
<pre>
LazyMan('hahah').eat('dinner').sleep(10).eat('lunch').sleepFirst(5);
// sleepFirst 10s
// hi this is hahah
// eat dinner
// sleep 10s
// eat lunch
</pre>
</code>
<p>1.实现链式调用</p>
<p>2.实现流程控制,类似于express中的中间件概念</p>

相关文章

  • 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 实现

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

  • 实现lazyMan

    涉及的知识点: 流程控制:创建task任务队列,使用push、shift、unshift方法操作任务 闭包:当闭包...

  • LazyMan 自己的笨办法

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

  • LazyMan的深入解析和实现

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

  • Lazyman的两种实现方式

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

网友评论

      本文标题:lazyman 实现

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