Это, в основном, только некоторые вещи, о которых мне было интересно, может быть, кто-то может дать мне немного больше информации о них, я поделюсь тем, что я заметил до сих пор!
Первое, что мне было интересно... есть ли какая-то разница или причина для использования:
$('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 раз), просто перебирал кучу элементов списка и устанавливал data-newAttr
, ничего особенного.
ВОПРОС: : Я думаю, мой самый большой вопрос: почему не всегда использовать для циклов, итерации через объект? Есть ли смысл использовать $.each()? Вы всегда используете for() петли даже при переходе через объекты jQuery?
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центы.:)