前端对于闭包问题好像每次都逃避不了,我总结了一下我对闭包的理解。
谈闭包之前闲思考一个问题
当函数内部读取函数外部的变量时我们可以引用全局变量,那么问题来了,函数外部怎么读取函数内部的变量?
这个时候闭包就开始发挥作用了,举例一个最简单的闭包:
function f1(){
var n=999;
//闭包函数
function f2(){
alert(n);
}
return f2;
}
var result =f1();
result();//这边就可以获取得到 f1函数部的值。
f2函数是可以读到f1函数的值,但是反之是不可以的,这一块和JAVA的继承非常相似,子类可以拥有父类的属性。但是父类不能拥有子类的属性。
这就是闭包的作用。