js链式调用

2021-03-10  本文已影响0人  Eileen_1d88
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')

上一篇下一篇

猜你喜欢

热点阅读