Pattern for JavaScript Options with Defaults
- published:
- 2009.05.14
- topics:
- javascript
Maybe this is obvious, but here's a really handy pattern for passing an object of options into your JavaScript functions when you also want there to be a set of default options for that function. I'm using jQuery's $.extend function to handle the objects, but most JavaScript libraries provide this functionality.
function myFunction(arg1, options) {
var defaultOptions = {
foo: 'foo-default',
bar: 'bar-default'
}
if (typeof options == 'object') {
options = $.extend(defaultOptions, options);
} else {
options = defaultOptions;
}
// rest of your code here...
// for demonstration purposes
alert(options.foo + ' and ' + options.bar);
}
Try running some demonstration code by clicking these buttons:
I hope somebody found that interesting/helpful.