谈谈对闭包的理解

function a(){
	var i=0;
	function b(){
		console.log(i++)
	}
	return b;
}
var c=a();//这里执行了函数a,返回函数b,因此c为函数b
c();//0,这里调用了函数b
c();//1,因为i仍然保存在a中,而函数b保持着对i的引用,因此i在内存中的栈去依然保留

使用闭包主要是为了设计私有的方法和变量。
优点:可以避免全局变量的污染
缺点:闭包会常驻内存,会增大内存使用量,使用不当容易造成内存泄漏。

特点:

  1. 函数嵌套函数
  2. 里边的函数可以使用外部的参数和变量
  3. 参数和变量不会被垃圾回收机制回收

猜你喜欢

转载自blog.csdn.net/qq_34035425/article/details/85013116