博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript 闭包详解
阅读量:6590 次
发布时间:2019-06-24

本文共 912 字,大约阅读时间需要 3 分钟。

闭包特性
函数嵌套函数函数内部可以引用外部的参数和变量参数和变量不会被垃圾回收机制回收
闭包的作用

具体作用是有权访问函数内部的变量,最常见的就是函数内部创建另一个函数,通过另一个函数访问这个函数的局部的变量。

缺点:就是常驻内存,会增大内存的使用量,使用不当会造成内存泄露。
一般函数执行完毕,局部活动对象就会被销毁,内存中仅仅保存全局作用域,但是闭包会长期驻扎在内存。

js垃圾回收

在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收;(Garbage Collection),计算机科学中一种自动释放不再被使用的内存空间的机制。

如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

全局变量 count++ 累加
var count = 0;function testCount(){    count++;    console.log(count);}testCount();//result 1testCount();//result 2
局部变量++ 不累加
function testCount(){    var count=0;    count++;    console.log(count);}testCount();//result 1testCount();//result 1//到这里会问玩毛线呢 这个我们懂 I know。 我只是想通过这两个例子来说明闭包的用处和好处。
局部变量count++累加
function testCount(){    var count=0;    return function(){        count++;        console.log(count);    }}var plus = testCount();  //函数赋值给变量plus();        //plus函数调用一次,结果为1,相当于testCount()();plus();        //plus调用第二次,结果为2,实现了局部变量累加了。//闭包会使变量始终保存在内存中,如果使用不当会增大内存消耗。

转载地址:http://sekio.baihongyu.com/

你可能感兴趣的文章
linux统计多个文件大小总和
查看>>
java基础-Eclipse开发工具介绍
查看>>
JS常见的字符串操作
查看>>
洛谷P1069 细胞分裂 数学
查看>>
JAVA中的编码分析
查看>>
查看源代码Source not found及在eclipse中配置jdk的src.zip源代码
查看>>
document.all用法
查看>>
uniGUI试用笔记(二)
查看>>
HOG特征-理解篇
查看>>
Microsoft.AlphaImageLoader滤镜解说
查看>>
extjs_02_grid(显示本地数据,显示跨域数据)
查看>>
超过响应缓冲区限制
查看>>
ubuntu 下安装 matplotlib
查看>>
webservice的几个简单概念
查看>>
underscore 1.7.0 api
查看>>
C# CheckedListBox控件的使用方法
查看>>
spring Transaction Management --官方
查看>>
iOS开发-清理缓存功能的实现
查看>>
IS_ERR、PTR_ERR、ERR_PTR
查看>>
html5 canvas 奇怪的形状垂直渐变
查看>>