日期:2014-05-16  浏览次数:20492 次

关于闭包的一个问题

有段代码

for(var i=0;i<10;i++){
    setTimeout((function(pos){
        return function(){
            someAnimation(pos);
        }
    })(i/10),i*100)
}         

我知道(function(){ })()  匿名函数并能自己执行。在函数后加一对()表示自动执行。

那么关于以上代码中i/10代表什么意思?

------解决方案--------------------
(function(arg){... })(value)
匿名函数后的()中的值value,是给函数参数arg传值的。
------解决方案--------------------
相当于var pos = i/10;
------解决方案--------------------
(function(pos){
        return function(){
            someAnimation(pos);
        }
    })  (i/10)

第一个括号 返回一个function

后面你懂得  相当于   a=(function(pos){})  ; a(i/10);