var a = 2;
var func = (function() {
var a = 3;
return function() {
a++;
console.log(a);
}
})();
func();
func();
请问下这题的结果是啥,以及为何会返回这样的结果?
var a = 2;
var func = (function() {
var a = 3;
return function() {
a++;
console.log(a);
}
})();
func();
func();
请问下这题的结果是啥,以及为何会返回这样的结果?
13 回答12.7k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答812 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
func
等于一个闭包,返回的是一个函数,当func
(闭包)执行的时候,闭包中的变量是存放在内存中不会销毁的,此时console.log
打印的是闭包中的变量,所以a
一直在加,并且跟全局的a
没关系