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

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

时间2025-08-05 01:40:11分类IT科技浏览4047
导读: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
package.json在哪里(package.json配置详解)