插件原文鏈接:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
常用鏈接:https://www.cnblogs.com/zikai/p/5074686.html
jQuery.fn
<pre>//code from http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//….
//……
};</pre>
原來(lái) jQuery.fn = jQuery.prototype.對(duì)prototype肯定不會(huì)陌生啦。·
雖然 javascript 沒(méi)有明確的類的概念,但是用類來(lái)理解它炉爆,會(huì)更方便姐仅。
jQuery便是一個(gè)封裝得非常好的類涩维,比如我們用 語(yǔ)句 $(“#btn1″) 會(huì)生成一個(gè) jQuery類的實(shí)例菩颖。
Objectj Query.extend( target, object1, [objectN])
用一個(gè)或多個(gè)其他對(duì)象來(lái)擴(kuò)展一個(gè)對(duì)象奢米,返回被擴(kuò)展的對(duì)象·
<pre>//code from http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery
.extend(settings, options);
結(jié)果:settings == { validate: true, limit: 5, name: "bar" }
</pre>
jQuery.extend() 的調(diào)用并不會(huì)把方法擴(kuò)展到對(duì)象的實(shí)例上,引用它的方法也需要通過(guò)jQuery類來(lái)實(shí)現(xiàn)巍扛,如jQuery.init(),而 jQuery.fn.extend()的調(diào)用把方法擴(kuò)展到了對(duì)象的prototype上乏德,所以實(shí)例化一個(gè)jQuery對(duì)象的時(shí)候撤奸,它就具有了這些方法,這 是很重要的,在jQuery.js中到處體現(xiàn)這一點(diǎn)
jQuery.fn.extend = jQuery.prototype.extend
你可以拓展一個(gè)對(duì)象到j(luò)Query的 prototype里去寂呛,這樣的話就是插件機(jī)制了怎诫。·
<pre>//code from http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
(function( $ ){
$.fn.tooltip = function( options ) {
};
//等價(jià)于
var tooltip = {
function(options){
}
};
$.fn.extend(tooltip) = $.prototype.extend(tooltip) = $.fn.tooltip
})( jQuery );</pre>