;function test(arr){
  alert(arr.join(""));
  setTimeout(arguments.callee(arr),1000)//这里怎么才能把arr传递进去啊?
})([1,2,2,3,4,5,5]);有很多参数,有对象也有字符串

解决方案 »

  1.   

    ;(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可以看控制台输出
      

  2.   

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

  3.   


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

  4.   

    楼主这样传参数是对的,但是你的函数里function前面少了一个左括号‘(’,setTimeout后面少了一个分号‘;’,而且你这个函数没有退出的机制啊,会一直弹出窗口。