实现一个简单的lazyman
Posted you1you
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个简单的lazyman相关的知识,希望对你有一定的参考价值。
function lazyman(name) { return new lazyman.fn.init(name); } lazyman.fn = lazyman.prototype = { construct: lazyman, stack: null, status: 0, init: function (name) { this.name = name; this.stack = []; return this; }, sleep: function (time) { var that = this; time = +time; if(time !== time) { this.next(); } else if(this.status) { this.stack.unshift(this.sleep.bind(this, time)); } else { this.status = 1; this.print(`sleeping ${time} seconds...`); setTimeout(function () { that.status = 0; that.next(); }, time * 1000); } return this; }, next: function () { while(this.status == 0 && this.stack.length) { this.print( this.stack.pop()() ); } return this; }, eat: function(thing) { this.stack.unshift(lazyEat.bind(null, this.name, thing)); if(this.status == 0) { this.next(); } return this; }, print: console.log } lazyman.fn.init.prototype = lazyman.fn; function lazyEat(name, thing) { return `${name} eat ${thing}`; } module.exports = lazyman;
以上是关于实现一个简单的lazyman的主要内容,如果未能解决你的问题,请参考以下文章