这些主要只是我一直想知道的事情,也许有人可以给我更多关于它们的见解,我将分享到目前为止我已经注意到的内容!
我一直想知道的第一件事...使用的好处或理由有什么不同:
$('element').each(function (i, el) { });
- 与 -
$.each($('element'), function (i, el) { });
查看jQuery文档,我看不到任何一个韵律或原因(也许您知道一个实例或其他可以做的事情)。
但更重要的是我在这里关心速度
// As opposed to $.each() looping through a jQuery object
// -- 8x faster
for (var i = 0, $('.whatever').length; i < len; i++) {
$('.whatever')[i] // do stuff
}
如果您在此处查看此jsFiddle DEMO,您将看到速度差异基本上与它们中的任何一个相等,但更重要的是,我觉得我应该始终使用for()循环...
我只是进行单元测试(遍历5个不同的场景功能中的每一个,50,000次),仅遍历一堆列表项,并设置a data-newAttr,没什么特别的。
问题::我猜我最大的问题是,为什么在遍历对象时不总是使用for循环?甚至还有使用$ .each()的意义吗?即使遍历jQuery对象,您是否总是使用for()循环?
Function type: Execution Time:
_testArea.each() + $(this) 1947 <-- using $(this) slows it down tremendously
$.each() + $(this) 1940
_testArea.each() + el(plain JS) 458 <-- using the Element speeds things up
$.each() + el(plain JS) 452
for() loop + plainJS[0] iteration 236 <-- over 8x faster
就是我的2美分。:)