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

setTimeout 参数bug
JScript code

 if(!+[1,]) { 
     (function(f){  
         window.setTimeout =f(window.setTimeout);  
         window.setInterval =f(window.setInterval);  
     })(function(f){  
         return function(c,t){  
             var a=[].slice.call(arguments,2);  
             return f(function(){  
                 c.apply(this,a)},t)  
             }  
     });  
 }


这里有一点看不用白,(function(){})(function(){})这种形式是什么写法,虽然以前在jquery碰到过,但现在看了看这个完全不能理解。

------解决方案--------------------
(function(){})(function(){})
第一个括号中的是匿名函数,第二个括号中的是向这个匿名函数中传递的参数,就是以第二个匿名函数为参数立即执行第一个匿名函数,