如题:<script type="text/javascript"> 
 for(var i=0;i<sum;i++){ 
            oSubLi[i].onmouseover = (function(i){
                return function(){
                    
                }
            })(i) 
}
  </script>

解决方案 »

  1.   

    (object)(i)
    那这个i有什么作用,好像没这个写法吧
      

  2.   

    http://wlog.cn/javascript/javascript-closures.html
      

  3.   

    匿名函数传参
    (function(i){  //形参

    })(i) // 实参
      

  4.   


    我们在一些JS代码中经常可以看到这样的用法 :
    (function(){})();
    那这些括号是做什么用的呢?
    下面我们来测试一下就知道了(function(){alert('zol');});
    运行后,没有反映(function(){alert('zol');})();
    运行后,弹出 zol(function(){alert('zol');})(alert('wiki'));
    运行后,先弹出wiki,再弹出zol(function(){alert('zol');})(alert('wiki'););
    出错,什么也不运行。我们从第二个可以看出,第一个括号中的匿名函数执行了,说明第二个括号是用于执行操作,这和我们调用函数的用法一样,比如定义了一个function a(){};我们调用a这个函数是 a();那么a就和这个例子中的第一个括号代表的意思相同,是一个函数体,只是没有名字,我们也叫他匿名函数。
    第三个代码中先弹wiki,说明alert('wiki')是先执行,这个是做为第一个括号的函数的参数来运行了,如果给参数后加分号,当然就出错了,所以第四个代码就不运行了。结合zsx841021,calmcrime 上面的资料问题明确了
    但是:
    var fn=(function(){
    //块级作用域
    alert('aa');
    return 'bb';
    })(alert('cc'));
    alert(fn);
    发现第一对()好像有没有和
    var fn=function(){
    //块级作用域
    alert('aa');
    return 'bb';
    }(alert('cc'));
    alert(fn);
    结果都一样
      

  5.   

    楼主可以仔细看看
    http://www.cn-cuckoo.com/main/wp-content/uploads/2009/12/named-function-expressions-demystified.html