jQuery缓存$(这个)有意义吗?

我还在学习jQuery,但我找不到可靠的答案。 我知道每次使用jQuery选择器$(...)都会产生性能成本,但是$(this)有很大的成本,你应该在使用它之前缓存它吗?

 var $this = $(this); 

如果你经常使用它,是的,它是有意义的,或链,例如:

 $(this).fadeIn().fadeOut().somethingElse(); 

如果它贵吗? 不是没有真正的宏观计划…但如果你在循环中成本倍增,所以最好缓存它。 如果你不止一次地使用它有意义, 那么多少意义取决于我认为对于那些代码有多重要。

好问题,杰森。 我想jQuery选择器函数可以非常有效地注意到this关键字。 也就是说,如果可以避免重复调用同一个选择器,那么它是否有意义。 这是方法链有用的地方:

 $(this).hide().show().hide(); 

如果你要在同一个函数的不同点上使用相同的选择器,我可能会创建一个变量来存储jQuery选择器函数的返回值。 没有它,我不会担心它,因为它真的是非常非常少量的处理…特别是因为我很确定jQuery库之前检查this关键字(和字符串类型)它运行任何正则表达式。