javascript闭包

什么是闭包?

闭包就是能够读取其他函数内部变量的函数

1.在JavaScript中,函数内部是可以直接读取全局变量的,例如:

var a = 1;
function fn(){
console.log(a);
}
fn();
// 输出a的值1

2.在JavaScript中,而在函数外部是无法读取到函数内的局部变量,例如:

function fn(){
	var a = 1;
}
console.log(a);
//这里就会报错

3.而闭包,就是使得函数外部可以的得到函数内的局部变量的方法,这就是它的作用和意义。接下来是例子:

function fn(){
	var a=1;
	function fm(){
		console.log(a);
		//这里fm是可以读取到它的外部,也就是fn()函数的值,获取并输出。
	}
	return fm;
	// 将值放回到自身
	//fm()就是闭包
}
 var b = fn();
 b();
 //这里将函数执行就能得到局部函数a的值

在JavaScript中,只有函数内的子函数才能读取函数的内部变量,所以,闭包就是定义在函数内部的那个一个子函数,它是函数内部和外部的一个连接口。

你可能感兴趣的:(javascript闭包)