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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

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

友情链接更多精彩内容