function f1(){
var n =9;
nAdd=function(){
n=n+1;
}
function f2(){
console.log(n);
}
return f2;
}
var result=f1();
result(); //9
nAdd();
result();// 10
var consult=f1();
consult();//9
如图代码所示,正在学习闭包,阮老师提到闭包作用之一就是可以让这些变量的值始终保存在内存中,
1.那为什么consult()这里打印出来的不是10,而是9呢?n值不是被保存下来了吗?
2.还有就是“f2被赋给了一个全局变量,这导致f2始终在内存中,而f2的存在依赖于f1,因此f1也始终在内存中” 这句话又是什么意思呢?f2为什么被赋给了一个全局变量?这个变量是谁?
宝慕林4294392
回首忆惘然
相关分类