什么是闭包(closure)?

闭包指能够读取其他函数内部变量的函数。在JS中,只有函数内部的子函数才能读取局部变量,所以闭包也可以理解成“定义在一个函数内部的函数”。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

// 为了更好说明闭包,创建一个闭包
function hello(){
     
    // 函数执行完毕,变量仍然存在
    var num=100;
    var showResult=function(){
     alert(num);}
    num++;
    return showResult;
}
var showResult=hello();
console.log(showResult); //hello里的showResult
showResult(); //执行结果:弹出101

你可能感兴趣的:(什么是闭包(closure)?)