Naming names doesn't change the idea: It is surely a wholesale change to function semantics in the language.
> JavaScript's open prototypes suffer from the inability to define a number of new properties at once using an object literal. reopen (not reopenClass), provides that functionality.
Sure, that's why you use a general-purpose merge function, prototypes just being objects themselves.
var merge = function(o, o2, force) {
for (var p in o2)
if (o2.hasOwnProperty(p) && (!(p in o) || force))
o[p] = o2[p];
return o;
};
var C = function() { /* ... */ };
merge(C.prototype, {
foo: function() { /* ... */ },
bar: function() { /* ... */ }
});
In any case a name like reopenClass() sounds very much like an attempt to make JS smell like Ruby even if all the function does is perform a merge.