我经常$(this)
在 jQuery 事件处理程序中使用并且从不缓存它。如果我会做
var $this = $(this);
并且将使用变量而不是构造函数,我的代码会获得任何显着的额外性能吗?
JS Perf 测试以测量此优化带来的性能增益:http: //jsperf.com/jquery-this-caching
我经常$(this)
在 jQuery 事件处理程序中使用并且从不缓存它。如果我会做
var $this = $(this);
并且将使用变量而不是构造函数,我的代码会获得任何显着的额外性能吗?
JS Perf 测试以测量此优化带来的性能增益:http: //jsperf.com/jquery-this-caching
一个很小很小的不易察觉的,是的。重要的?不。
每次你这样做$(this)
,它都会导致几个函数调用和几个内存分配。函数调用既不存在也不存在(即使在 IE6 上,我也很惊讶地得知),但是内存流失可能会在不能很好地处理内存管理的浏览器上加起来。大多数现代人都这样做。
我总是将结果保存到变量中,因为我只是不喜欢调用函数和不必要地分配对象。它可以节省输入这些括号。:-)
是的,因为每次你$(this)
创建一个新的 jquery 对象。
但是你不会得到显着的性能,只要你做超过 1000 倍
缓存多次使用的对象是一种很好的做法。