当有非常多的setTimeout和setInterval时,哪种用法效率高?
发布于 12 年前 作者 wimlwiml 11697 次浏览 最后一次编辑是 8 年前

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

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

<p>或者这样: </p>

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

test : function(id){
console.log(id);
}
</code></pre>

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

12 回复

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

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

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

好了,谢谢提示:)

第二种必然省内存。

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

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

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

不错啊,学习了

选个标签分类一下也不错

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

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

回到顶部