function myFun(name) {
myFun.name = name
return myFun
}
myFun.stack = []
myFun.play = function(str) {
var fn = () => {
console.log(`${myFun.name}玩${str}`)
}
myFun.stack.push(fn)
myFun.next()
return myFun
}
myFun.sleep = function(wait) {
var fn = () => {
console.log(`休息${wait}分钟`)
setTimeout(() => {
myFun.next()
}, wait * 1000)
}
myFun.stack.push(fn)
return myFun
}
myFun.eat = function(food) {
var fn = () => {
console.log(`${myFun.name}吃${food}`)
}
myFun.stack.push(fn)
myFun.next()
return myFun
}
myFun.next = function() {
var fn = myFun.stack.shift()
fn && fn()
}
myFun('张三')
.play('足球')
.play('篮球')
.sleep(3)
.sleep(3)
.sleep(3)
.eat('food')
网友评论