一个javascript问题。
本文介绍了一个javascript问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function f1(){
var n=999;
nAdd=function(){
n+=1
}
function f2(){
alert(n);
}
return f2;
}
var result1=f1();
var result2=f1();
result1(); // 999
nAdd();
result1(); // 999
result2(); //1000
为什么输出分别是999,999,1000而不是999,1000,1000
解决方案
因为n
不是全局变量,每次调用f1()
都会创建独立的n
;
那么显然,第二次调用var result2=f1();
之后,nAdd
里的n
就只对result2
负责了,于是result1()
仍然打印出来的是她自己作用域里的那个999
这篇关于一个javascript问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文