当有非常多的setTimeout和setInterval时,哪种用法效率高?
发布于 3年前 作者 wimlwiml 2898 次浏览

这个非常多是指大约有10W个setTimeout或setInterval存在
一种用法是直接写匿名函数:

mkTimer : function(id){  
    setInterval(  
        function(){  
            console.log(id);  
            //code ...  
        },  
        5 * 1000  
    );  
}

或者这样:

mkTimer : function(id){  
    setInterval(this.test, 5 * 1000, id);  
},  

test : function(id){
console.log(id);
}

这二种有本质的区别吗?第二种方案会不会效率要高些,内存占用要少些?

12 回复

大家不要管代码里面的5秒这个参数,这个纯是随便写的一个数,也可能50秒钟,也可能500秒

难道这个问题很小白吗? :(

发布话题时注意markdown语法的使用,这样代码更容易看清。

好了,谢谢提示:)

第二种必然省内存。

匿名函数是一次性函数。当只要用一次某个函数式时,就特别有用 通过使用匿名函数,没有必要把函数一直放在内存中,所以使用匿名函数更加有效率

说老实话,我个人也比较同意#3楼说法,感觉第二种省内存和效率高

说老实话,我个人也比较同意#3楼说法,感觉第二种省内存和效率高

不错啊,学习了

选个标签分类一下也不错

如果很多就有可能是设计的问题了,建议楼主参考下jQuery或者一些游戏框架的写法,如何用一个主循环优化。

不能凭感觉的,为什么第二种省内存?

回到顶部