我不知道jQuery是如何工作的,但是让我们说在某些时候我创建了一个jQuery对象:
var thingy = $('#thingy');
在代码中进一步说,重用东西有什么不同:
thingy.empty();
而不仅仅是再次制作jQuery? :
$('#thingy').empty();
我想在第二种情况下,我们必须创建另一个jQuery对象,但我怀疑这是微不足道的.我试图通过重用变量来避免的是对匹配元素进行DOM搜索.也许这种搜索无论如何都会发生?
我最初的假设是在创建$object时扫描文档.但后来我发现$object可能只是一个迭代器,每次执行其中一个方法时都会再次扫描文档.我想这是我的问题的症结所在.
解决方法
如果你的选择器是一个单独的对象,那不是很糟糕,但如果你的选择器是$(‘.thingy’)怎么办?每次再次创建它时,它会迭代整个doc查找该类,而不是使用存储的选择.不是很糟糕,但随后它为该选择创建了一个新的DOM对象.如果有500个.thingy实例,那真的很快就会陷入困境.
ETA:正如no.good.at.coding所指出的,每次使用任何类型的选择器时,遍历整个DOM.所以烨 – 将它存储在变量中,调用变量.