function animfactory(){
     return function(){
           //动画代码
     }
}time1=setInterval(animfactory);上面是第一步重构 吧你动画的代码抽出来 作为一个原子级别的调用var animManager = {
      runs:function(times){   //times运行几次
             var handlers = [];
             for(var i=0;i<times;i++){
                   handlers.push(setInterval(animfactory));
            }
            return handlers;
     }
}var handlers = animManager.runs(8);这个是第2步重构 把你的类同操作 作为集合处理

解决方案 »

  1.   

    setInterval(animfactory)
    --->改成
    setInterval(animfactory())
      

  2.   


    再麻烦一下,不好意思哈,我下面代码有点问题,指点一下function animfactory(i , umn){
    return function(){
    console.log(i+","+umn);//这里没有值,不知道该怎么搞
    if(umn==0){代码}
    }
    }

    var animManager = {
    runs:function(ti){//times运行几次
    var handlers = [];
    for(var i=0;i<ti;i++){
    var umn=0;
    handlers.push(setInterval(function(){
    animfactory(i , umn);
    umn+=1;
    if(umn>2){umn=0;}
    },aImgItem[1]));
    }
    return handlers;
    }
    }
    var handlers = animManager.runs(t.length);