在jQuery的不良做法中使用$()快捷方式?

时间:2010-06-04 21:04:07

标签: javascript jquery

我最近收听了播客,该播客对使用$()与使用jQuery()进行了评论。据说,每次使用$()时都会创建一个新对象,而使用jQuery()时则不是这样。我在谷歌周围但却找不到关于这个特定主题的任何内容。

我意识到这不是一个典型的例子,但以下是我对这个问题的答案感兴趣的原因。

我有一个页面,用户将在浏览器中加载一整天(24小时,或可能更长),并且每隔约5秒对DOM进行更新,这是通过jQuery调用AJAX的结果( AJAX调用部分与更新DOM无关 - 对DOM的更新是使用HTML字符串和jQuery对象调用.empty()然后.html()完成的。

自从听到此消息后,我随后将所有$()来电切换为jQuery()来电,但我想知道:
使用$() vs使用jQuery()是不是很糟糕的做法?这两者之间的差异是微不足道的吗?或者它在大型项目中是否真的引人注目?

6 个答案:

答案 0 :(得分:21)

不,这不是不好的做法,也没有性能差异。

$jQuery标识符引用相同的函数实例 这是由jQuery.js的最后一行完成的:

window.jQuery = window.$ = jQuery;

答案 1 :(得分:12)

使用$()而不是jQuery()的唯一问题是另一个Javascript框架也可能使用它。

答案 2 :(得分:4)

不 - 看看jQuery源代码。 $只是jQuery的另一个别名 - 最后一行说明了一切:

window.jQuery = window.$ = jQuery;

自己看看: http://code.jquery.com/jquery-latest.js

答案 3 :(得分:2)

对我来说,目标是避免命名与其他使用$作为主要对象的库的冲突,如Prototype,如果你想在同一页面上使用这两个库,或者你不知道你的代码将在哪里二手...

答案 4 :(得分:2)

你确定它是$()vs jQuery()吗?也许更重要的一点就是有性能命中率,而且许多新的js编码器在普通的js可以做到时不必要地使用$()。

最好避免在不需要时创建jQuery对象。

答案 5 :(得分:0)

如前所述,唯一真正的问题是与使用的其他js框架发生冲突,因此我发现这是仍然能够使用美元符号的最方便的解决方案,但没有冲突并使您的代码更具可移植性:

(function($) { /* some code that uses $ */ })(jQuery)

http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery