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

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

时间2025-05-31 00:44:04分类IT科技浏览3245
导读: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
前端组件是什么(前端设计模式——组合模式) 操作系统分段与分页的区别(操作系统中的分布式主机:对其优势、挑战和未来前景的分析)