编写jquery静态util方法

我理解扩展jquery.fn以将自定义函数放在jquery对象的原型链上的概念,但在我的情况下,我的一些util不需要连接到选择器。 我基本上是在寻找静态方法。 所以我想知道在jquery对象上直接编写静态方法作为util方法的任何缺陷。

例:

jquery.myMethod = function(arg){ ...... } $.myMethod("blabla"); 

谢谢

正如您似乎意识到的那样,不要将所有实用程序函数转储到全局命名空间中是个好主意。 您对全局命名空间的影响越小越好。 如果你已经有了jQuery,那么你选择放置它们的地方是:

  1. 作为jQuery对象的新方法如: jQuery.myUtil1()jQuery.myUtil2()
  2. 作为jQuery对象上的一个对象下的新方法如: jQuery.jfUtils.myUtil1()jQuery.jfUtils.myUtil2()
  3. 作为一个新的全局对象(与jQuery无关)的新方法如: jfUtils.myUtil1()jfUtils.myUtil2()

选项2)似乎比选项1)更好,因为你减少了与其他jQuery函数冲突的机会,尽管你确实为每个函数调用添加了额外的查找。

选项3)似乎完全可以接受,因为它只向全局命名空间添加一个新项目,因此只要你使名称合理唯一,你应该没问题。

所以,我认为你可以选择2)或选项3)。 选项2)可能会更安全一些,因为您知道该命名空间中的内容的一般范围,但两者都可以工作。

您不应该向jQuery添加静态方法。 你没有通过尝试获得任何东西。 扩展jQuery的目的是使用查询字符串找到的jQuery对象将拥有它们的方法。 您只是创建一个全局函数,因此只需创建一个新的顶级对象来保存您的函数。