js系列十:闭包

概念
闭包是一种特殊的对象。
它由两部分组成:执行上下文(代号A),已经在该执行上下文中创建的函数(代码B)。
当B执行时,如果访问了A中变量对象中值,那么闭包就会产生。
我们只需要知道,一个闭包对象,由A,B共同组成,在以后的文章中,都会将以chrome的标准来称呼。

function foo() {
	var a = 20;
	var b = 30;
	function bar() {
		return a + b;
	}
	return bar;
}
var bar = foo();
bar();

在上面的例子中,首先执行上下文 foo,在foo中定义了函数bar,而后通过对外返回bar的方式让bar得以执行。当时执行时,访问了 foo 内部变量a和b。因此这个时候闭包产生,
在chrome中通过断点调试的方式可以逐步分析该过程,从图中可以看出,此时闭包产生,用foo代替
在这里插入图片描述
在这里插入图片描述
在图中,箭头所指的正是闭包,其中call stack 为

已标记关键词 清除标记
05-08 1945
05-06 2172
实付 79.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值