jQuery缓存$(这个)有意义吗?
我还在学习jQuery,但我找不到可靠的答案。 我知道每次使用jQuery选择器$(...)
都会产生性能成本,但是$(this)
有很大的成本,你应该在使用它之前缓存它吗?
var $this = $(this);
如果你经常使用它,是的,它是有意义的,或链,例如:
$(this).fadeIn().fadeOut().somethingElse();
如果它贵吗? 不是没有真正的宏观计划…但如果你在循环中成本倍增,所以最好缓存它。 如果你不止一次地使用它有意义, 那么多少意义取决于我认为对于那些代码有多重要。
好问题,杰森。 我想jQuery选择器函数可以非常有效地注意到this
关键字。 也就是说,如果可以避免重复调用同一个选择器,那么它是否有意义。 这是方法链有用的地方:
$(this).hide().show().hide();
如果你要在同一个函数的不同点上使用相同的选择器,我可能会创建一个变量来存储jQuery选择器函数的返回值。 没有它,我不会担心它,因为它真的是非常非常少量的处理…特别是因为我很确定jQuery库之前检查this关键字(和字符串类型)它运行任何正则表达式。