码迷,mamicode.com
首页 > 编程语言 > 详细

前端学习 第六弹: javascript中的函数与闭包

时间:2016-11-06 22:02:31      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:asc   return   function   ++   bar   tmp   javascrip   访问   nbsp   

前端学习 第六弹:  javascript中的函数与闭包

当function里嵌套function时,内部的function可以访问外部function里的变量

function foo(x) {
    var tmp = 3;
    function bar(y) {
        alert(x + y + (++tmp));
    }
    bar(10);
}
foo(2)

这时无论怎么运行输出的都是16,但这不是闭包

 

如果我们返回内部函数,内部function会close-over外部function的变量直到内部function结束

function foo(x) {
    var tmp = 3;
    return function (y) {
        alert(x + y + (++tmp));
    }
}
var bar = foo(2); // bar 现在是一个闭包
bar(10);
这时反复运行会输出16,17,18.....
这就是一个闭包

 

前端学习 第六弹: javascript中的函数与闭包

标签:asc   return   function   ++   bar   tmp   javascrip   访问   nbsp   

原文地址:http://www.cnblogs.com/Ccf-SongHaoLun/p/6036434.html

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