JS 中的闭包, 可能在实际开发中我们用的很少, 但是面试的时候是必问的.
所以今儿个总结一下什么是闭包.
首先, 我们定义一个变量. 会分为两种情况, 1 是定义在全局中, 我们关闭程序的时候变量会从内存中释放. 2 是定义在局部中, 在函数中定义一个变量, 当我函数调用结束后, 会从内存中释放.
闭包的存在, 就是为了当我调用了声明局部变量的函数后, 我的局部变量还能存在在全局之中. 延长了我局部变量的生命周期.
接下来简单写一个闭包~~
- function aaa(){
- var a =10
- function bbb(){
- console.log(a)
- }
- return bbb
- }
- var num = aaa()
- num()
那么是怎么判断一个程序中有闭包呢?
1. 是否有外层函数和内层函数 eg:aaa() bbb()
2. 外层函数是否有局部变量 eg: var a =10
3. 内层函数是否操作了外层函数的局部变量 eg:console.log(a)
4. 内层函数是否和外面产生了关联 eg: return bbb
感谢大家看到这里, 希望这篇文章对大家都有帮助~~~
来源: http://www.bubuko.com/infodetail-3100737.html