這兩種寫法都是可以的。
第一種:
function a(){ var m=[]; for(var i=1; i<10; i++){ (function(i){ function b(){ console.log(i); } m.push(b); })(i); } return m; }
第二種:
function a(){ var m=[]; for(var i=1; i<10; i++){ (function(){ var j = i; function b(){ console.log(j); } m.push(b); })(); } return m; }