一次面试当中遇到的问题
什么是闭包呢?解决什么问题呢?
function f1(){
var n=999;
}
alert(n); // error
怎么在读取函数内部的参数,闭包解决这个问题。
function f1(){
var n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
以上代码,f2函数就是闭包
闭包就是能够读取其他函数内部变量的函数。
闭包简单理解成"定义在一个函数内部的函数"。
在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。