$(document).ready()和$(function()) -- 该使用哪一个?

21

我看到一个关于使用$(document).ready(function(){})$(function(){})是否有区别的已回答问题(没有区别),但我的问题是哪一种语法更受推荐,为什么。

我已经使用 jQuery 一年左右,并一直使用$(document).ready()的语法; 但最近在 SO 和其他一些地方,我看到了越来越多的 $(function())的语法。

你是否有偏好的语法以及你为什么使用它?你只是为了节省几个字符而使用更短的语法吗?

再提供一点背景信息,我目前正在从头开始开发一个新应用程序,并希望制定一些普遍接受的最佳实践和标准。

提前感谢!

4个回答

26

尽管要多打几个字符,但我仍然使用$(document).ready(function(){});。 我只是更喜欢在代码中加上它,以提醒自己代码将在何时运行,并能通过搜索“ready”来查找这些部分。 这与其他方法功能相同,虽然我通常会采用简便方式,但在这种情况下我不会。


2
可读性是以其他条件相等的情况下采取某种方式的一个很好的理由。 - hvgotcodes
这就是为什么我长期使用document.ready的原因,因为我知道发生了什么。谢谢! - David Hoerster

11

你可以使用任意一种方式,$(function() {}) 只是一个缩写,它与另外的一种方式起到了完全相同的作用。

个人而言,我更喜欢 $(function() { }) 因为... 嗯,我经常打这个,而且更快一些。

我看到很多人问为什么 $(document).load() 不起作用之类的问题,因为他们没有使用正确的事件... 我也认为$(func) 减少了一些歧义,对于我来说。请按照您和您的团队的理解进行选择,哪种方式更加清晰,就用哪一种。


2
我认为jQuery的作者推荐使用$(document).ready(function(){...});,因为这会使你的代码更加透明。

当你说“更透明”时,你是否意味着它更清晰地表明了你正在操作什么(在这种情况下是文档元素)?谢谢! - David Hoerster
1
没错。jQuery语法中最出色的一点就是其清晰易懂。通过使用 $(document).ready(function(){...},从一开始就保持了这种清晰度。我知道使用 $(function() {}) 可以减少击键数,但是由于程序像Coda、Espresso和TextMate等提供了许多可自定义的快捷方式,我认为这些起始击键根本不需要手动输入。 - Squirkle

1

我发现$(function() {});更简单,可以节省一些字符。就像你说的那样,这并不重要。我认为更重要的是要关注你的JavaScript设计模式。它们会影响性能、可读性和简洁性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接