標籤:jquery擴充
-
- 相同點
- 不同點
- jQueryextend
- jQueryfnextend
- 程式碼範例
相同點
兩者都是用來擴充 jQuery,為 jQuery添加方法的,在開發jQuery 的相關外掛程式時經常用到。
不同點jQuery.extend()
為 jQuery 類本身添加類方法,即為靜態方法;
調用添加的方法時只能通過 jQuery 本身來調用,jQuery 執行個體對象是無法調用新添加的方法的。比如 添加了 show 和 hide 方法,則調用方式為: jQuery.show()和 jQuery.hide().
jQuery.fn.extend()
看 jQuery 的原始碼時會看到: jQuery.fn=jQuery.prototype,不難發現 jQuery.fn實際即為 jQuery 的原型。則調用jQuery.fn.extend()實際是在擴充jQuery.prototype對象的方法。由於 jQuery原型中的所有成員方法會被所有jQuery執行個體對象繼承,則只要是 jQuery 執行個體對象就有添加的方法。
與 jQuery.extend()不同,jQuery.fn.extend()是為jQuery 原型添加方法,即為jQuery執行個體對象的成員方法。
調用方式也發生了改變,不用通過 jQuery 本身來調用添加的方法,所有 jQuery 執行個體對象都可以調用。
程式碼範例
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>jquery.extend()</title></head><body><div id="sample">extend</div></body><script src="jquery-1.11.0.js"></script><script> $(document).ready(function($){ jQuery.extend({ show:function(){ alert("show message!"); }, hide: function () { alert("hide message!"); } }); jQuery.hide(); jQuery.show();//使用jQuery本身調用新添加的方法 }) jQuery(function($){ jQuery.fn.extend({ show:function(){ alert("show message!"); }, hide: function () { alert("hide message!"); } }); $("#sample").show(); $("#sample").hide();//使用jQuery 執行個體對象調用新添加的方法 })</script></html>
jQuery.extend()與 jQuery.fn.extend()比較