experimental.js
779 Bytes
/** Other functional functions I'm playing around with */
/** Returns a function with a clean prototype that calls the base function. */
Function.prototype.copy = function() {
var f = this;
return function() {
return f.apply(this, arguments);
}
}
/** Returns a constructor that will take an object as an initializer list. */
function initializer() {
return function(members) {
for(key in members) {
this[key] = members[key];
}
}
}
/** Returns a constructor that will take an object as an initializer list. Takes
an object of properties that are added to the constructor's prototype. */
function protoInitializer(protoMembers) {
var construct = initializer();
for(key in protoMembers) {
construct.prototype[key] = protoMembers[key];
}
return construct;
}