jQuery $.extend()用法總結


Query開發插件的兩個方法

1.jQuery.extend(object);為擴展jQuery類本身.為類添加新的方法。 
2.jQuery.fn.extend(object);給jQuery對象添加方法。

jQuery.fn

jQuery.fn = jQuery.prototype = {
    init: function(selector, context) {
        //內容
    }
}

  2.jQuery.fn = jQuery.prototype。O(∩_∩)O哈哈~,對這個prototype(原型)不陌生了吧!!

  3.雖然 JavaScript 沒有明確的類的概念,但是用類來理解它,會更方便。jQuery便是一個封裝得非常好的類,比如我們用 語句$("#div1")會生成一個 jQuery類的實例。

jQuery.extend(object)

  為jQuery類添加類方法,可以理解為添加靜態方法。

  栗子①

jQuery.extend({
    min: function(a, b) {
        return a < b ? a : b;
    },
    max: function(a, b) {
        return a > b ? a : b;
    }
});
jQuery.min(2, 3); //  2 
jQuery.max(4, 5); //  5

jQuery.fn.extend(object);

  就是為jQuery類添加“成員函數”。jQuery類的實例才可以調用這個“成員函數”。

  栗子②

  比如我們要開發一個插件,做一個特殊的編輯框,當它被點擊時,便alert 當前編輯框里的內容。可以這么做:

$.fn.extend({
    alertWhileClick: function() {
        $(this).click(function() {
            alert($(this).val());
        });
    }
});
//$("#input1")是jQuery的實例,調用這個擴展方法
$("#input1").alertWhileClick();

jQuery.extend() 的調用並不會把方法擴展到對象的實例上,引用它的方法也需要通過jQuery類來實現,如jQuery.init()

jQuery.fn.extend()的調用把方法擴展到了對象的prototype上,所以實例化一個jQuery對象的時候,它就具有了這些方法,在jQuery.JS中到處體現這一點

jQuery.fn.extend = jQuery.prototype.extend

  你可以拓展一個對象到jQuery的 prototype里去,這樣的話就是插件機制了。

  栗子③

(function($) {
    $.fn.tooltip = function(options) {};
    //等價於 var
    tooltip = {
        function(options) {}
    };
    $.fn.extend(tooltip) = $.prototype.extend(tooltip) = $.fn.tooltip
})(jQuery);

摘自:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM