<script type="text/javascript"> function aa(){ var a = []; var i; for (i = 0; i < 3; i++) { a[i] = function(){ return i; }; } return a; } var fun = aa(); alert(fun[0]()); //ouput 3 alert(fun[1]()); //ouput 3 alert(fun[2]()); //ouput 3 </script> <script type="text/javascript"> function aa(){ var a = []; var i; for (i = 0; i < 3; i++) { a[i] = (function(x){ return x; })(i); } return a; } var fun = aa(); alert(fun[0]); //ouput 0 alert(fun[1]); //ouput 1 alert(fun[2]); //ouput 2 </script> <script type="text/javascript"> function aa(){ var a = []; var i; function n(x){ return x; } for (i = 0; i < 3; i++) { a[i] = n(i); } return a; } var fun = aa(); alert(fun[0]); //ouput 0 alert(fun[1]); //ouput 1 alert(fun[2]); //ouput 2 </script>