首页 > 代码库 > js闭包的理解
js闭包的理解
1.为什么用闭包?
js变量的作用域:全局变量和局部变量
函数内部是可以直接读取全局变量的,而函数外部却无法读取函数内部的局部变量,所以闭包的出现实际就是为了能在函数外部获取函数内部的局部变量。
2.什么是闭包?
function f1(){
var n=1;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result();
函数外部访问不到内部变量?我们在函数f1内部声明函数f2,n1相当于f2的全局变量,所以f2是可以访问f1的局部变量,所以,我们将f2作为返回值return出来,就可以在外部访问f1中的局部变量。
3.闭包的作用?
(1)可以读取函数内部的变量
(2)让这些变量的值永远保存在内存中。(实例中result其实是指向f2的,所以f2始终会在内存中,而f2又是依赖于f1而存在的,所以f1也会一直处在内存中不会被垃圾回收)
js闭包的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。