jQuery爲開發插件提拱了兩個方法,分別是:
jQuery.fn.extend(object);
jQuery.extend(object);
jQuery.extend(object);爲擴展jQuery類自己.爲類添加新的方法。
jQuery.fn.extend(object);給jQuery對象添加方法。這個應該很好理解吧。舉個例子。javascript
<span style="font-size:18px;"><html> <head> <title></title> </head> <body> <h3 class="ye">new soul</h3> <h3 class="ye">new soul</h3> <h3 class="ye">new soul</h3> <h3 class="ye">new soul</h3> <script type="text/javascript" src="jquery.2.0.3.js"></script> <script type="text/javascript"> jQuery.fn.myPlugin = function(options) { $options = $.extend( { html: "no messages", css: { "color": "red", "font-size":"14px" }}, options); return $(this).css({ "color": $options.css.color, }).html($options.html); } $('.ye').myPlugin({html:"So easy,yes?",css:{"color":"green","font-size":"20px"}}); </script> </body> </html> </span>
好的,上面你也看到了一點點$.extend()的用法。
1.合併多個對象。
這裏使用的就是$.extend()的嵌套多個對象的功能。
所謂嵌套多個對象,有點相似於數組的合併的操做。
可是這裏是對象。舉例說明。 css
<span style="font-size:18px;">//用法: jQuery.extend(obj1,obj2,obj3,..) var Css1={size: "10px",style: "oblique"} var Css2={size: "12px",style: "oblique",weight: "bolder"} $.jQuery.extend(Css1,Css2) //結果:Css1的size屬性被覆蓋,並且繼承了Css2的weight屬性 // Css1 = {size: "12px",style: "oblique",weight: "bolder"} </span>
2.深度嵌套對象。html
<span style="font-size:18px;"> jQuery.extend( { name: 「John」, location: { city: 「Boston」 } }, { last: 「Resig」, location: { state: 「MA」 } } ); // 結果: // => { name: 「John」, last: 「Resig」, location: { state: 「MA」 } } // 新的更深刻的 .extend() jQuery.extend( true, { name: 「John」, location: { city: 「Boston」 } }, { last: 「Resig」, location: { state: 「MA」 } } ); // 結果 // => { name: 「John」, last: 「Resig」, // location: { city: 「Boston」, state: 「MA」 } } </span>
3.能夠給jQuery添加靜態方法。java
<span style="font-size:18px;"><html> <head> <title></title> </head> <body> <script type="text/javascript" src="jquery.2.0.3.js"></script> <script type="text/javascript"> $.extend({ add:function(a,b){return a+b;}, minus:function(a,b){return a-b}, multiply:function(a,b){return a*b;}, divide:function(a,b){return Math.floor(a/b);} }); var sum = $.add(3,5)+$.minus(3,5)+$.multiply(3,5)+$.divide(5,7); console.log(sum); </script> </body> </html></span>