2015-10-14 71 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

關於這些類的細節:)可悲的是,在這種特殊情況下它們不能由後端設置。但非常好的建議,謝謝! –

相關問題