Производительность jQuery с точки зрения получения значения атрибута

0

Есть ли разница в производительности между этими тремя ниже, когда дело доходит до получения значения атрибута элемента?

a) функция attr()

$('div').click(function() {
    var div_id = $(this).attr('id');
    // rest of the logic
});

б) свойство объекта объекта события

$('div').click(function(e) {
    var div_id = e.target.id;
    // rest of the logic
});

c) чистый подход JS

$('div').click(function() {
    var div_id = this.id;
    // rest of the logic
});
  • 0
    Несомненно. Не выполнение функции всегда будет быстрее, чем выполнение функции. Имеет ли это какое-то значение для общей производительности вашего приложения / сайта, я в этом сомневаюсь. Но даже если бы не было никакой разницы, зачем вам писать $(this).attr('id') вместо this.id
  • 1
    Почему вы спрашиваете, вместо тестирования, например, с JS Perf ?
Показать ещё 4 комментария
Теги:
performance

1 ответ

0

Несомненно, вариант c лучше подходит для других:

$('div').click(function() {
   var div_id = this.id;
   // rest of the logic
});

потому что это доступно в самом браузере, и вы не используете другой метод любой внешней библиотеки, такой как два других.

  • 0
    e.target - это стандартная функция DOM. Даже если e прибывает из jQuery.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню