javascript闭包

闭包是什么?  
闭包是指程序中有许多白能量和绑定变量的执行环境。

在我看来就是:程序的代码段允许存在一级函数并且一级函数不能被释放,以及韩你数没有释放之前,外部可以使用一级函数的局部变量。

简单的说闭包就是在外部可以使用局部变量。

闭包的功能:

1、外部可以使用局部变量

2、使函数不能释放

为什么一级函数不能被释放?

因为在一级函数中有一个函数,这个函数使用了一级函数的变量,我们返回了这个函数并创建一个变量接收了。

那么这个函数就不会被js的垃圾回收机制销毁。

闭包的应用:

一般的项目中,闭包的使用比较少。当我们去封装一个第三方库时,会大量使用闭包。

闭包的优缺点:

优点:

1、一个变量可以长期驻扎在内存中

2、 避免全局变量的污染

3、私有成员的存在

缺点:常驻内存,会增大内存的使用量,使用不当很容易造成内存泄漏。

外部会修改局部变量,会大量占用内存,内存不会被释放。

闭包的一种写法:

<script>
//函数在调用时,会开辟一块内存空间,这块内存空间在函数执行完毕时释放;
function fn(){
var a = 1;
return function (){
alert(a++);
}
}

        //a 是fn返回的二级函数
        var a =  fn();
        a(); //返回 1 //此时,我们在外界就是用到了fn的局部变量
        a(); //返回2
        
        var b = fn();
        b();//返回1
        b();//返回2
    </script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zouCode阅读 1,371评论 0 13
  • 目录 1.执行环境与作用域链 2. 立即执行函数 3. 闭包知识点 3.1 什么是闭包 3.2 使用闭包的意义与注...
    犯迷糊的小羊阅读 712评论 0 11
  • 前言 这篇文章使用有效的javascript代码向程序员们解释了闭包,大牛和功能型程序员请自行忽略。 基础篇 闭包...
    kiaizi阅读 416评论 0 7
  • 1、什么是闭包? JavaScript的闭包是一个特色。官方解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的...
    WEB攻程狮阅读 632评论 0 11
  • 从耳机的另一头 听着你的哭泣 我的心里也下起了雨
    狗男养猫阅读 212评论 0 0

友情链接更多精彩内容