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

关于这些类的细节:)可悲的是,在这种特殊情况下它们不能由后端设置。但非常好的建议,谢谢! –

相关问题