使用是否始终是最佳做法:
var $this = $(this);
或者是$(this)缓存,因此上面的行仅用于保存两个字符?
答案 0 :(得分:3)
使用$(this)
调用至少两个(可能超过两个)函数,并在每次使用时分配一个对象(消耗最终必须回收的内存)。如果您只是重复使用相同的东西,这就是额外的工作。我建议调用一次,然后缓存结果(例如,在函数内)而不是十几行$(this).foo();
$(this).bar();
。
$
是jQuery
函数的别名,如下所示:
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
}
如您所见,它创建了一个对象,调用构造函数jQuery.fn.init
。然后那个函数必须弄清楚它在做什么,因为,jQuery使用jQuery
函数来处理18种不同的事情。我不是说它不会很快做到,而是为什么要做所有额外的工作。 : - )
编辑:如果您将DOM元素传递给它(通常是$(this)
正在做的事情),jQuery.fn.init
不再进一步函数调用。所以“只是”两个加上分配。
答案 1 :(得分:0)
$ function将创建jQuery对象的新实例(或检查所有现有的实例,我不确定唯一ID如何工作),但它可以是循环/每个函数的巨大开销。
所以在这些情况下,答案是肯定的,在其他情况下,它可能是无关紧要的。
不,这绝对不仅仅是角色。