Hi,
I'd like to suggest an enhancement to $.extend, to allow extending
an object from multiple objects.

This will allow a simple way for plugins to have a global set of
default options:

$.fn.plugin(options) {
    var options = $.extend({}, arguments.callee.defaults, options || {});
    ...
}
$.fn.plugin.defaults = { ... }

This extends an empty object with the global defaults and then
again with the local options. With the existing implementing this would
have to be done as such:

$.extend($.extend({}, arguments.callee.defaults), options || {});


Heres the new $.extend function:

jQuery.extend = jQuery.fn.extend = function(obj) {
        // If no property objects were provided, then we're extending jQuery
        if ( arguments.length == 1 ) {
                var obj = this;
                var a = 0;
        } else {
                var a = 1;
        }
        
        while (a < arguments.length) {
                var prop = arguments[a];
                
                if (prop !== null && prop != undefined) {
                        // Extend the base object
                        for ( var i in prop ) obj[i] = prop[i];
                }
                
                a++;
        }

        // Return the modified object
        return obj;
};

- Mark Gibson

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to