首页 > 编程语言 > 详细

javascript闭包

时间:2016-03-10 20:29:58      阅读:195      评论:0      收藏:0      [点我收藏+]

今天看了一篇博客,对闭包有了一定的理解。

首先,为什么需要闭包。因为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会一直存在在内存中,这样的话会浪费内存,因此尽量不要使用太多的闭包函数。


javascript闭包

原文:http://www.cnblogs.com/bingningran/p/5263105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!