是否总是使用以下最佳做法:
var $this = $(this);
还是$(this)已缓存,因此上面的行仅用于保存两个字符?
最佳答案
使用$(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种不同的事情.我并不是说它不能很快完成,而是为什么要做所有这些额外的工作.