javascript的闭包问题
先由一个例子来引出问题function f(){var a;var i=0; a=(function(i){ return function(){ return i;}})(i)i=2; return a;}var a=f();alert(a());function f(){var a;var i=0; a=function(){ return i;}i=1; return a;}var a=f();alert(a());上面列举的两个例子只有一点的不同,导致了结果的迥异。其实例一其实使用了闭包,而例二没有使用。。。最后导致给a赋得值不同,例一赋得是变量i的值,而例二赋得是变量i的指针。。。。古当i值变时,例二的结果变了
页:
[1]