能不能有个大神解释下为什么下面的这个程序的结果
能不能有个大神解释下为什么下面的这个程序的结果小弟的疑问是:为什么此时的两次的result的不一样的结果
代码敬上:
function f(){
var a=0
var n=0
return function(){
n++
a++
alert(a)
alert("n is "+n)
}
}
var result=f();
result() //1
result() //2
顺便收下膜拜的膝盖 谢谢哈!{:10_256:} 例行自己给自己顶下 哈哈
{:9_236:} 你把一个函数 return 出去,就形成了一个闭包。f() 的作用域被保存了出来,所以作用域中的参数就不会被垃圾回收机制删掉,a 和 n 就可以继续自增。
页:
[1]