美文网首页
惰性函数

惰性函数

作者: Veycn | 来源:发表于2019-07-25 11:25 被阅读0次

    无论这个函数调用多少次,返回的都是第一次调用时候的结果。
    惰性函数的意思就是,这个事儿我做了一次之后就再也不做了,你再怎么调用我,我也只能给你我第一次完成时的东西。

    代码简单啊, 刚看到代码的我,蒙圈了~

    var foo = function(){
      var t = new Date()
      foo = function(){
        return t
      }
      return foo()
    }
    

    看不懂怎么办?作为前端小白的自我修养,我默默的打开了chrome调试工具。


    在作用域里面,t已经有了。foo最初指向的是最外层的函数,下面即将改变foo的指向。

    t进入了闭包中,foo指向的是里面的函数,在后面多次的foo()调用中,都是调用的function(){return t},由于闭包,t一直被保存着。每次执行都返回了t

    这样看来就很简单了。
    整个代码第一次调用,生成了一个t = Thu Jul 25 2019 11:11:09 GMT+0800 (中国标准时间)。然后被存储了起来。
    foo则指向了一个新的函数,最外层函数在返回foo()之后,就失去了作用。上面执行六次foo()函数,只有第一次是执行的最外层函数,后面五次都是新的函数。

    相关文章

      网友评论

          本文标题:惰性函数

          本文链接:https://www.haomeiwen.com/subject/ebbcrctx.html