缓存$(这个)是否有性能提升?

时间:2012-12-17 17:52:02

标签: jquery performance

我经常在jQuery事件处理程序中使用$(this)并且永远不会缓存它。如果我会做

var $this = $(this);

并且将使用变量而不是构造函数,我的代码会获得任何显着的额外性能吗?


JS Perf测试用于衡量此优化的性能提升:http://jsperf.com/jquery-this-caching

2 个答案:

答案 0 :(得分:9)

一个 微小的微小的微不足道的 ,是的。重大?否。

每次执行$(this)时,都会导致多次函数调用和几次内存分配。函数调用既不在这里也不在那里(即使在IE6上,我是surprised to learn),但内存流失可能会增加不能很好地处理内存管理的浏览器。大多数现代人都这样做。

我总是将结果保存到变量中,因为我不喜欢调用函数和不必要地分配对象。它可以节省那些parens的输入。 : - )

答案 1 :(得分:3)

是的,因为每次执行$(this)时都会创建一个新的jquery对象 但是,如果你的表现超过1000倍,你将无法获得显着的表现

这是一个很好的做法,可以缓存多次使用的对象。