闭包小谈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭包小谈相关的知识,希望对你有一定的参考价值。
概念:函数嵌套函数,内部函数可以引用外部函数的参数和变量,变量和参数不会被垃圾回收机制所回收
作用:◆ 1)希望一个变量长期驻扎在内存之中
2)避免全局变量的污染
3)私有成员的存在
◆注意:可能会造成内存泄漏
用一些简单的小例子来解释下闭包:
function fun1(){
var num=1;
}
//我想取到里面的局部变量num
function fun1(){
var num=1;
function fun2(){
//在加一个fun2当他的子元素
alert(num);
}
}
接下来我们就是需要用return出来返回值
function fun1(){
var num=1;
function fun2(){//在加一个fun2当他的子元素
alert(num);
}
return fun2(); //return出来后 它就给 window了所以一直存在内存中
}
fun1();
内存泄漏与内存溢出
1.内存溢出:指的是程序向系统申请一定大小内存,而系统不能满足程序的要求就是内存的溢出。2.内存泄漏:指申请的内存一直得不到释放,GC回收不了。一般在项目中就是,你声明的变量一直保存在内存中,它有值但你把它的引用地址搞丢了一直没法用它,而GC又没法回收这块内存给别的程序使用就叫内存泄漏。
以上是关于闭包小谈的主要内容,如果未能解决你的问题,请参考以下文章
Groovy闭包 Closure ( 闭包类 Closure 简介 | thisownerdelegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )
JS闭包的基础知识,闭包的本质,闭包的作用,闭包的间谍属性和闭包的遗憾
Groovy闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )
Groovy闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )