2015-10-14 3 views
0

Я пытаюсь изучить javascript лучше. Многого я не знаю, например, у меня есть этот простой код, должен ли он быть в функции, которая называет это «я»? Или я должен оставить это так? И почему?Должен ли я помещать этот код javascript в функцию?

<script type="text/javascript"> 
    $('.some_ul_class').each(function(i, obj) { 
     var childrenCount = $(this).find('li').length; 
     $(this).addClass('li-count-' + childrenCount); 
    }); 
</script> 
+0

Если вы планируете использовать эту процедуру более одного раза, было бы полезно поместить вещи в функцию. Повторное использование - это ключевое слово. – DTH

+1

Вы можете извлечь $ (this) в локальную переменную для лучшей производительности, но в большинстве случаев выигрыш будет незначительным. Все остальные отлично смотрятся. – IgorL

ответ

4

Функции имеют две цели в JavaScript:

  • Контроль области видимости.
  • Предоставление кода для повторного использования.

Вы не создаете каких-либо переменных в глобальной области видимости, поэтому смену функции не нужно менять.

Это позволяет разрешить код для повторного использования. Вы хотите называть этот фрагмент кода несколько раз? Если это так, используйте функцию.

+0

Спасибо, что отвечает на мой вопрос. Я не полный JS noob, но время от времени кто-то смотрит на ваш код и говорит: «Это не лучший способ сделать это», мне всегда было любопытно, есть ли другие причины, кроме повторного использования, лучше практики какого-то рода. Благодарим вас за ответ. –

0

Для меня это использование jQuery выглядит нормально.

Однако я бы не стал использовать jQuery для добавления классов таким образом.

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

Для меня фрагмент jQuery вводит некоторую магию, которую можно отлаживать позже.

+0

Точная точка зрения на классы :) К сожалению, они не могут быть установлены внутренней стороной в данном конкретном случае. Но очень хороший совет, спасибо! –

Смежные вопросы