码迷,mamicode.com
首页 > 其他好文 > 详细

闭包浅解析

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

标签:script   function   效果   java   闭包   来源   ret   导致   fun   

资料来源:《你不知道的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。

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

闭包浅解析

标签:script   function   效果   java   闭包   来源   ret   导致   fun   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!