function f1(){
var n=999;
nAdd = function(){ n+=1 }
function f2(){
alert(n);
}
return f2;
}
var result = f1();
result();
nAdd();
result();
为什么nAdd()不会执行呢?
var n=999;
nAdd = function(){ n+=1 }
function f2(){
alert(n);
}
return f2;
}
var result = f1();
result();
nAdd();
result();
为什么nAdd()不会执行呢?
关于JS的函数指针?
function f1(){
n=999;
function f2(){
alert(n);
}
return f2;
}
f1();
以上代码为什么不能执行;?
为什么f1()还要加个指针呢?
var c = f1();
c();
这样才可以
<script>function f1(){
var n=999;
nAdd = function(){ n+=1 }
alert(n);
function f2(){
alert(n);
}
return f2;
}
f1();
nAdd();
f1();
</script>
由于这个时候nAdd()运行的是另外一个指定的N。。所以这样N没有递增
其实都已经执行了。各函数作用如下:
result();//结果输出999
nADD();//结果让N+1,也就是让N=1000
result();//再次输出N值,此时N=1000,所以结果输出1000。
3个函数里只有2个有输出,只是感觉起来好象只有2个函数起作用而已!跟闭包的概念差得好远。呵呵!