js惰性函数(js-惰性函数)
1. 需求:我们现在需要写一个 foo 函数 ,这个函数返回首次调用时的 Date 对象 ,注意是首次 。
使用场景:当我们每次都需要进行条件判断 ,其实只需要判断一次 ,接下来的使用方式都不会发生改变的时候 ,想想是否可以考虑使用惰性函数 。
惰性函数:顾名思义 ,有点懒惰 ,懒到事件只处理一次 ,当然不是值整个函数只处理一次 。而是里面的某一行或者多行只执行一次 。正常情况下 ,一个函数内部 ,所有的该执行的东西 ,无论是定义变量 ,还是新建对象,亦或者做判断 ,还是运算 ,定义定时器等等,都是依照顺序来执行 ,无论这个函数执行调用多少次 ,都依旧是如此;
简单理解下 ,惰性函数的本质就是函数重写 ,所谓惰性载入 ,指函数执行的分支只会发生一次 。
为了不影响全局变量 ,我们用闭包简单来做:
但是每次执行都需要进行一次判断 ,为了解决每次都需要判断的情况 ,使用惰性函数 ,
最后发现两次打印一摸一样 ,因为第一次执行立即执行函数的时候 ,没有跳过var t = new Date();这一步 ,并且把一个新的函数返回给了foo,第二次执行的时候 ,foo函数只会执行:立即执行函数中的那个新的函数 ,也就跳过了var t = new Date();直接使用第一次调用的t的值 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!