首页IT科技js惰性函数(js-惰性函数)

js惰性函数(js-惰性函数)

时间2025-09-19 05:45:45分类IT科技浏览4622
导读:1. 需求:我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。...

1. 需求:我们现在需要写一个 foo 函数              ,这个函数返回首次调用时的 Date 对象                       ,注意是首次                。

使用场景:当我们每次都需要进行条件判断        ,其实只需要判断一次           ,接下来的使用方式都不会发生改变的时候                      ,想想是否可以考虑使用惰性函数                      。

惰性函数:顾名思义            ,有点懒惰        ,懒到事件只处理一次                      ,当然不是值整个函数只处理一次       。而是里面的某一行或者多行只执行一次            。正常情况下                ,一个函数内部    ,所有的该执行的东西                      ,无论是定义变量                    ,还是新建对象,亦或者做判断                  ,还是运算                        ,定义定时器等等    ,都是依照顺序来执行              ,无论这个函数执行调用多少次                       ,都依旧是如此;

简单理解下        ,惰性函数的本质就是函数重写           ,所谓惰性载入                      ,指函数执行的分支只会发生一次                       。

为了不影响全局变量            ,我们用闭包简单来做:

  但是每次执行都需要进行一次判断        ,为了解决每次都需要判断的情况                      ,使用惰性函数                ,

var foo = function() { var t = new Date(); foo = function() { return t; } console.log(foo, foo); console.log(foo(), foo()); return foo() } console.log(foo()); setTimeout( () => { console.log(foo()); }, 3000)

最后发现两次打印一摸一样    ,因为第一次执行立即执行函数的时候                      ,没有跳过var t = new Date();这一步                    ,并且把一个新的函数返回给了foo,第二次执行的时候                  ,foo函数只会执行:立即执行函数中的那个新的函数                        ,也就跳过了var t = new Date();直接使用第一次调用的t的值          。

声明:本站所有文章    ,如无特殊说明或标注              ,均为本站原创发布        。任何个人或组织                       ,在未征得本站同意时        ,禁止复制              、盗用                       、采集        、发布本站内容到任何网站           、书籍等各类媒体平台                        。如若本站内容侵犯了原著者的合法权益           ,可联系我们进行处理              。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10 usb启动盘怎么做(win10系统BIOS如何设置U盘启动?)