function _lazyMan(name) {
this.tasks = [];
var _this = this;
var fn =(function(n){
var name = n;
return function(){
console.log("Hi! This is " + name + "!");
_this.next();
}
})(name);
this.tasks.push(fn);
setTimeout(function(){
_this.next();
}, 0);
}
_lazyMan.prototype.next = function() {
var fn = this.tasks.shift();
fn && fn();
}
_lazyMan.prototype.eat = function(name) {
var _this = this;
var fn =(function(name){
return function(){
console.log("Eat " + name + "!");
_this.next();
}
})(name);
this.tasks.push(fn);
return this;
}
_lazyMan.prototype.sleep = function(time) {
var _this = this;
var fn = (function(time){
return function() {
setTimeout(function(){
console.log("Wake up after " + time + "s!");
_this.next();
}, time * 1000);
}
})(time);
this.tasks.push(fn);
return this;
}
function lazyMan(name){
return new _lazyMan(name);
}
实现一个LazyMan
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 这应该算一个经典的面试题了,就是一个关于流程控制的问题,要求如下 这是一个典型的流程控制,我们需要按照条件把事件注...
- 一 最近一个关于手持手机测试性格的文章热遍朋友圈,而且还有很多朋友在评论里坦言很准,下面我们先一睹该文的全貌,上图...