随笔 - 45,  文章 - 0,  评论 - 2,  阅读 - 9004

一次看透什么是闭包

认识闭包
- 函数的执行空间不会销毁
- 外部函数 返回一个 内部函数
- 内部函数 中使用了 外部函数的私有变量
闭包函数
- 概念
+ 函数内的函数
- 特点:
1. 函数外部可以访问到函数内部的私有变量 ==>(必须通过闭包函数访问)
2. 延长了函数内私有变量的生命周期 ==> (必须要使用闭包函数)
3. 函数执行空间不会销毁 ==> 内存溢出
闭包的作用(闭包有什么用)

    + 解决外部访问不到函数内部变量的问题;
    + 局部变量会常驻在内存中;
    + 避免使用全局变量,造成全局变量污染。

闭包可以让你在一个内层函数中可以访问到外层函数的作用域。

我们在什么情况下使用闭包?
通常当你使用只有一个方法的对象时,可以使用闭包。
为的是创建私有变量,延长变量的生命周期

注意事项

如果不是某些特定任务需要使用闭包,在其它函数中创建函数是不明智的,因为闭包在处理速度和内存消耗方面对脚本性能具有负面影响

例如,在创建新的对象或者类时,方法通常应该关联于对象的原型,而不是定义到对象的构造器中。

原因在于每个对象的创建,方法都会被重新赋值

手写一个闭包 (看好了,我只写一遍)

    function outer(){
    aa = 100
    function inner (){
        return console.log(aa+1)
    }
    return inner
   }
   outer()    //到此出闭包就写完了,此时的outer() 调用的是inner函数,要是想让console.log(aa+1),真正打印还需要再写一行
   
   outer()()  //现在才可以在控制台看到输出的内容 101
posted on   玉龙龙玉  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

欢迎这位怪蜀黍来到《闭包 - 玉龙龙玉 - 博客园》
点击右上角即可分享
微信分享提示