当前位置:   article > 正文

js系列十:闭包_var name =’win‘

var name =’win‘

概念
闭包是一种特殊的对象。
它由两部分组成:执行上下文(代号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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/685957
推荐阅读
相关标签
  

闽ICP备14008679号