首页 > 其他 > 详细

闭包浅解析

时间:2020-05-29 17:16:42      阅读:49      评论:0      收藏:0      [点我收藏+]

资料来源:《你不知道的Javascript(上卷)》

function foo(){
    var a = 2;
    function bar(){
	console.log(a); 
    }
    return bar
}
var baz = foo();
baz(); // 2 这就是闭包效果 

在这个例子中,bar()在自己定义的词法作用域(foo函数内)以外的地方执行。
在foo()函数执行之后,按理说应该会被回收,但是由于闭包存在,bar()中拥有foo()内部作用域的变量a,导致foo()函数不会被销毁。
在baz被实际调用(调用内部函数bar()),可以访问变量a。

无论通过何种手段将内部函数传递到所在词法作用域以外,他都会持有对原始定义作用域的引用,无论在何处执行这个函数都会使用闭包。

闭包浅解析

原文:https://www.cnblogs.com/kenanyah/p/12988029.html

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