了解jQuery插件开发模式
根据jQuery插件创作指南 ,基本的插件结构如下所示:
(function($){ $.fn.myPlugin = function( options ) { return this.each(function() { // Do something... }); }; })( jQuery );
然而,我在我检查过的几个jQuery插件中看到了以下模式:
(function($){ $.extend($.fn, { myPlugin: function( options ) { $(this).each( function() { // Do something }); }, }) })(jQuery);
有人可以解释第二种方法 – 什么是$.extend(...
和所有关于对象的符号?
谢谢-
这两个基本上完成了相同的任务,但方式略有不同。
$.fn.myPlugin = …
直接将函数分配给jQuery命名空间中所需的位置。
$.extend($.fn, {myPlugin:…
正在扩展 $.fn
对象,并将对象指定为第二个参数。在这种情况下,对象只包含一个属性myPlugin
,这是要添加的函数。
你可以使用任何一种结构,虽然我个人觉得第一个更清洁。
$.extend
函数用于:
将两个或多个对象的内容合并到第一个对象中。
所以这:
$.extend($.fn, { ... });
只是将对象文字的内容合并到$.fn
。 像这样使用$.extend
只是另一种做正常/标准赋值的方法:
$.fn.myPlugin = ...