JS闭包的详解
目录 一、什么是闭包? 二、闭包有什么好处?应用在哪? 2.1 好处: 2.2 用法: 三、闭包需要注意的地方? 3.1 IE下会引发内存泄露 一、什么是闭包? 特点: 1 函数嵌套函数 2 内部函数可以引用外部的参数和变量 3 参数和变量不会被垃圾回收机制所回收 举一个简单的闭包的例子,例子中符合闭包的三个特点 function aaa(a){ var b = 5; function bbb(){ alert(a); alert(b); } } aaa(); 关于js 中的垃圾回收机制,这里说明一下。请看下面代码,当aaa函数执行完毕之后,aaa中的变量a会被js的垃圾回收机制所回收 function aaa(){ var a = 1; } aaa(); // 改函数执行完毕时候,函数中的变量a会被js的垃圾回收机制所回收 再举一个闭包例子 当aaa函数执行完毕之后,调用c函数仍然可以弹出1,说明了a这个变量没有被垃圾回收 function aaa(){ var a = 1; function bbb(){ alert(a); } return bbb; } var c = aaa(); // 当aaa函数执行完毕之后,调用c函数仍然可以弹出1,说明了a这个变量没有被垃圾回收 c(); 二、闭包有什么好处?应用在哪? 2.1 好处: 1 可以使一个变量常驻内存 2