Side navigation
#70 closed feature (fixed)
Opened July 15, 2006 10:23PM UTC
Closed July 16, 2006 12:06AM UTC
Last modified June 21, 2007 04:27AM UTC
Add an merge object method to jQuery core
Reported by: | Jörn | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.0 |
Component: | core | Version: | 1.0 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I saw the idea of merging objects to overwrite default options some time ago in a plugin...
Many plugins have default values that can be overwritten by the client. A convienent approach is to use an object literal to define defaults and merge the defaults with options given by the client.
Example:
defaults = { option1: 1, option2: "foo" } options = { option2: "bar" } // merge these $.mergeObject(defaults, options); // Would result in options being unchanged an // defaults with option1 equals 1 // and option2 equals "bar"
The mergeObject function is very small:
/** * Merges two objects, overwriting all properties * of the defaults with properties from * the options, if present. */ jQuery.mergeOptions = function(defaults, options) { for(var i in options) { defaults[i] = options[i]; } }
Having this in jQuery core and adding some documention about this could by quite a help for plugin developers.
Attachments (0)
Change History (1)
Changed July 16, 2006 12:06AM UTC by comment:1
milestone: | → 1.0 |
---|---|
resolution: | → fixed |
status: | new → closed |
version: | → 1.0 |
I just added this! You can give this a try in the latest SVN version:
jQuery.extend( {
option1: 1, option2: 'foo'
},{option2: 'bar'});
Doing just this will add it to the jQuery object:
jQuery.extend({
foo: 'bar'
});
And you can do this to add multiple properties to the jQuery prototype:
jQuery.fn.extend({
method1: 'one',
method2: 'two'
});
Hope this helps!