js链式调用

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')

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在做一个组件化开发的案例时在主逻辑中用到了链式调用的方法,目的是为了让代码更简洁易读,减少代码量,但是对各个...
    一点红3340阅读 1,254评论 0 1
  • mlxg阅读 229评论 0 0
  • jquery链式调用: jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以...
    鬼会画符阅读 267评论 0 0
  • 关键词:链式调用 我们都很熟悉jQuery了,只能jQuery中一种非常牛逼的写法叫链式操作 那这是如何实现的呢,...
    ferrint阅读 5,440评论 1 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,606评论 0 11