您的位置:首页 > Web前端 > JavaScript

javascript闭包

2016-03-10 19:20 288 查看
今天看了一篇博客,对闭包有了一定的理解。首先,为什么需要闭包。因为js中的变量分为全局变量和局部变量,js可以在函数中直接读取全局变量,但函数外部不能读取函数内部的局部变量。为了解决这个问题以及其他各种各样的问题,闭包就产生了。
function f1(){
var m=10;
function f2(){
alert(m);
}
}
f1();
在这里,f2可以读取f1的m值,因为f2是f1内部函数,f1对f2来说是开发的。但是,f2对f1是隐秘的。既然f2可以读取f1内部变量,那么同样有办法可以在函数外部读取f1的内部变量:

function f1(){
var m=10;
return function f2(){
alert(m);
}
}
var result=f1();
result();
闭包虽然有利于我们在函数外部访问函数内的数值,但是f1的值m会一直存在在内存中,这样的话会浪费内存,因此尽量不要使用太多的闭包函数。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: