好吧,我想我明白了 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/