美文网首页
什么是闭包?闭包的用途和特点以及需要注意的地方是什么?

什么是闭包?闭包的用途和特点以及需要注意的地方是什么?

作者: 楠楠_c811 | 来源:发表于2019-01-09 16:45 被阅读20次

说起闭包,真是个恼人的小妖精啊。
你还不能不会不能不用,来来来,干干脆脆的来个大总结。

什么是闭包呢?

闭包是是指有权访问另一个函数作用域中的变量的函数。
本质上,闭包是将函数内部和函数外部连接起来打的桥梁。

创建闭包的常见方式是什么?

最常见的创建闭包的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。利用闭包可以突破作用域链,将函数内部的变量传递到外部。

闭包的特点是什么呢?

1、函数套函数;
2、内部函数可以引用外部函数的参数和变量;
3、参数和变量不会被垃圾回收机制收回。

闭包的优点是什么呢?

1、可以将一个变量长期驻扎在内存当中;
2、避免全局变量的污染;
3、私有成员的存在。

使用闭包需要注意什么呢?

1、闭包会使函数中的变量被保存在内存中,内存消耗很大,会造成网页性能问题,在IE中会导致内存泄漏;
解决办法:在退出函数之前,将不使用的变量全部设置为空,可以释放内存。
2、闭包会在父函数外部,改变父函数内部变量的值。所以如果把父函数当做对象Object使用,把闭包当做它的公用方法,把内部变量当做它的私有属性,一定要小心,不要随便改变父函数内部变量的值。

最后,来个闭包的代码练练手吧。

       function F1(){
            let a = 100; 
            return function f2(){  // 闭包的特点:1. 函数套函数
                console.log(a)  // 2. 内部函数可以引用外部变量
            }
        }
        let f1 = F1();
        let a = 200 ;  // 重新定义变量来看看调用时走哪个
        f1();  // 100  函数调用时的变量是创建时候的变量而不是调用时的变量

相关文章

  • 什么是闭包?闭包的用途和特点以及需要注意的地方是什么?

    说起闭包,真是个恼人的小妖精啊。你还不能不会不能不用,来来来,干干脆脆的来个大总结。 什么是闭包呢? 闭包是是指有...

  • 前端常见问题总结

    什么是闭包?闭包的用途是什么?闭包的缺点是什么? 什么是闭包 闭包:内部函数总是可以访问其所在的外部函数中声明的参...

  • 闭包、call-apply-bind 的用法 、HTTP状态码

    一、什么是闭包?闭包的用途是什么?闭包的缺点是什么? 答 :1、什么是闭包:如果一个函数用到了外部的变量,那么这个...

  • 闭包,call、apply、bind 的用法,HTTP 状态码

    什么是闭包?闭包的用途是什么?闭包的缺点是什么?• 闭包:如果一个函数用到了外部的变量,那么这个函数加这个变量就叫...

  • 闭包的理解

    什么是闭包,闭包的用途是什么? 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部...

  • 闭包的总结

    围绕:闭包是什么?闭包的用途有哪些?闭包的缺点是什么? 这三个问题来进行总结 一、何为闭包?如果一个函数用到了外部...

  • 闭包

    闭包是什么;闭包的作用;闭包的一些特点。 什么是闭包,简单的说就是函数嵌套函数(红宝书),在函数作用域内,可以访问...

  • 什么是闭包?闭包的用途是什么?

    什么是闭包: 如果一个函数用到了它作用域外面的变量,那么这个变量和这个函数之间的环境就叫闭包。 闭包的用途有些什么...

  • 什么是闭包?闭包的用途是什么?

    闭包的概念: 闭包是指有权访问另一个函数作用域中的变量的函数。如以下代码: 在outside函数内部定义的函数in...

  • 什么是闭包,闭包的用途是什么?

    什么是闭包? 闭包:如果一个函数使用了它范围外的变量,那么 这个函数+这个变量 就是闭包。 这函数 最后 输出的 ...

网友评论

      本文标题:什么是闭包?闭包的用途和特点以及需要注意的地方是什么?

      本文链接:https://www.haomeiwen.com/subject/qsjgrqtx.html