jQuery fn.extend ({bla : function(){}} vs. jQuery.fn.bla

标签 jquery performance syntax jquery-plugins extend

好吧,我想我明白了 Difference between jQuery.extend and jQuery.fn.extend?

因为一般扩展可以扩展任何对象,并且 fn.extend 用于可以使用一些内部 jquery 巫术直接从 jquery 对象调用的插件函数。

所以看来人们会以不同的方式调用它们。如果您使用通用扩展通过添加函数 y 来扩展对象 obj,则该方法将附加到该对象 obj.y() 但如果您使用 fn.extend 那么它们是 直接附加到 jquery 对象 $.y()...我是否得到正确的是或否,如果没有,我的理解有什么错误?

现在我的问题:

我正在读的书倡导者使用

jQuery.fn.extend({
    a: function() { },
    b: function() { }
});

语法,但在文档中它说

jQuery.fn.a = function() { };

我想如果你也想要 b 的话那就是

jQuery.fn.b = function() { };

这些在功能和性能方面是否等效,如果不是,有什么区别?

非常感谢。我正在挖掘 jQuery!

最佳答案

它们之间有非常微妙的区别。就性能而言(这并不是一个问题),jQuery.fn.extend 会比直接声明类似 jQuery.fn.foo = function(){ };< 的函数慢。我说的是完全可以忽略不计的差异

区别在于 jQuery.fn.extend() 允许您同时添加多个插件函数,并且可能使您的代码看起来更干净,具体取决于您正在编写的插件类型。

<小时/>
jQuery.fn.a = function(){};
jQuery.fn.b = function(){};

完全一样

jQuery.fn.extend({
  a: function(){ },
  b: function(){ }
});

关于jQuery fn.extend ({bla : function(){}} vs. jQuery.fn.bla,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609951/

相关文章:

bash 大括号扩展不适用于零填充或增量

javascript - 出现错误 -> 意外的 token }

jquery - 如何使用javascript更改框架集中另一个框架的框架高度

javascript - 以相反顺序迭代二维 javascript 数组

javascript - 在淡出之前让推荐滚动条停留在屏幕上

javascript - 根据下拉响应更新div而不刷新

c++ - 使用 push_back 分配内存与构造特定大小的 vector

performance - Haskell 程序的奇怪空间行为

performance - 如何处理页面上数十万个 DOM 元素?

regex - 用正则表达式语法解释大括号