javascript - js闭包中()()问题
本文介绍了javascript - js闭包中()()问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有的说js闭包就是外层函数的变量在内存中保留下来。那么如下:
例一:
function outer(){
var n = 1;
return function(){
n++;
console.log(n);
};
}
outer()();//2
outer()();//2
例二:
function outer(){
var n = 1;
return function(){
n++;
console.log(n);
};
}
var aa = outer();
aa();//2
aa();//3
那么例一到底属不属于闭包,例一和例二差别在哪?
为什么例一中n在内存中没有被保存下来,而例二保存下来了。
跪求大神把两者的作用域链,执行环境,活动对象等给我理理,能用图最好!
解决方案
你可以把第一个例子看作
var aa=outer()
aa()
var bb = outer()
bb()
这篇关于javascript - js闭包中()()问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文