首页 > 编程语言 > 详细

关于javascript中闭包的理解

时间:2015-10-02 11:12:37      阅读:120      评论:0      收藏:0      [点我收藏+]

闭包就是能够读取其他函数内部变量的函数。

在javascript中,只有函数内部的子函数可以读取局部变量,因此,我理解闭包就是定义在一个函数内部的函数。

 例子:

var f1 = function() {
	var n = 100;
	var f2 = function() {
		return n;
	}
	return f2();
}
var s = f1();

console.error(n + 1);

由于n是定义在f1内部的局部变量,因此外部的n是未定义的,会出错

var f1 = function() {
	var n = 100;
	var f2 = function() {
		return n;
	}
	return f2();
}
var s = f1();

console.notice(s + 1);

通过闭包函数f2,局部变量n就可以在外部取到。

其实熟悉了以后,闭包就是匿名函数,然后被它的外部函数作为返回值传出来,就可以在外部取到局部变量了

闭包的作用除了前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

 

闭包不能乱用,因为其变量一直保持在内存中,因此内存消耗会比较大。

 

关于javascript中闭包的理解

原文:http://www.cnblogs.com/vaansun/p/4852023.html

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