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

setTimeout参数问题,百度谷歌都找不到解决办法,来求助了
;function test(arr){
  alert(arr.join(""));
  setTimeout(arguments.callee(arr),1000)//这里怎么才能把arr传递进去啊?
})([1,2,2,3,4,5,5]);

有很多参数,有对象也有字符串

------解决方案--------------------
;(function test(arr){
var fn = arguments.callee;
if(!fn.n){fn.n = 0;}
fn.n++;
if(fn.n>3){return}
console.log(arr.join("|"));
setTimeout(function(){
fn(arr);
},1000);
})([1,2,2,3,4,5,5]);
用火狐或者chrome可以看控制台输出
------解决方案--------------------
setTimeout(test(arr),1000)这样写就行了~·
------解决方案--------------------
JScript code

        (function test(arr){
           var arg = arguments;
           alert(arr.join(""));
           setTimeout(function(){ arg.callee(arr); }, 1000);  //这里怎么才能把arr传递进去啊?
        })([1,2,2,3,4,5,5]);

------解决方案--------------------
探讨

setTimeout(test(arr),1000)这样写就行了~·

------解决方案--------------------
楼主这样传参数是对的,但是你的函数里function前面少了一个左括号‘(’,setTimeout后面少了一个分号‘;’,而且你这个函数没有退出的机制啊,会一直弹出窗口。
------解决方案--------------------
2楼的代码已经写好了退出机制