LazyMan (js)

看了一些大佬的,方法分装的比较好,但是对小白来说看起来比较绕

本菜鸟自己写了容易理解的

!function () {

  var list = []

  function f (e) { }

  f.prototype.eat = function (e) {

    var fn = function () {

      console.log('eat | ' + e)

      调用()

    }

    list.push(fn)

    return this

  }

  f.prototype.sleep = function (e) {

    var fn = function () {

      setTimeout(() => {

        console.log('sleep | ' + e)

        调用()

      }, e * 1000)

    }

    list.push(fn)

    return this

  }

  f.prototype.firstSleep = function (e) {

    var fn = function () {

      setTimeout(() => {

        console.log('firstSleep | ' + e)

        调用()

      }, e * 1000)

    }

    list.unshift(fn)

    return this

  }

  function 调用 () { list.length > 0 && list.shift()() }

  window.f = function (e) {

    var fn = function () {

      console.log('lazyman | ' + e)

      调用()

    }

    list.push(fn)

    setTimeout(调用, 0)

    return new f()

  }

}()

// 下面4行是调用的

f("Hank").sleep(2).eat("dinner")

f("Hank").eat("dinner").eat("supper")

f("Hank").firstSleep(2).eat("supper")

f("Hank").sleep(2).firstSleep(3).eat("supper")

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

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,172评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,445评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,387评论 2 17
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 10,827评论 0 7
  • 我追逐你 如同追逐那月亮 我跑,你也跑 直到穷途末路的时候 我抬起疲倦的头 你把我的执着来嘲笑 你说,湖里也有我啊...
    左有归舟阅读 1,454评论 0 1

友情链接更多精彩内容