前端学习 第六弹: javascript中的函数与闭包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端学习 第六弹: 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中的函数与闭包的主要内容,如果未能解决你的问题,请参考以下文章