Skip to content

Instantly share code, notes, and snippets.

@postpostscript
Created December 6, 2015 18:49
Show Gist options
  • Save postpostscript/2488fb6f58df995af262 to your computer and use it in GitHub Desktop.
Save postpostscript/2488fb6f58df995af262 to your computer and use it in GitHub Desktop.
Helpers for creating extendable JavaScript objects
function extend() {
var result = arguments[0];
for(var i = 1; i < arguments.length; i++) {
for(var key in arguments[i]) {
result[key] = arguments[i][key];
}
}
return result;
}
function toArray(array) {
return Array.prototype.slice.call(array);
}
function extendable(obj) {
return extend(obj, {
extend: function() {
return extend.apply(this, [{}, this.valueOf()].concat(toArray(arguments)));
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment