首页 > 代码库 > 前端学习 第六弹: javascript中的函数与闭包
前端学习 第六弹: javascript中的函数与闭包
前端学习 第六弹: 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);
return function (y) {
alert(x + y + (++tmp));
}
}
var bar = foo(2); // bar 现在是一个闭包
bar(10);
这时反复运行会输出16,17,18.....
这就是一个闭包
前端学习 第六弹: javascript中的函数与闭包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。