This is because myfunction added in the constructor, which happens after the prototype properties are added (so that the "Original" actually rewrites "Overwritten").
You will have to imitate this behavior by overwriting mynamespace.myclass yourself:
var oldClass = mynamespace.myclass; // Copy original before overwriting mynamespace.myclass = function () { // Apply the original constructor on this object oldClass.apply(this, arguments); // Now overwrite the target function after construction this.myfunction = function () { alert("Overwritten"); }; }; mynamespace.prototype = oldClass.prototype; // Same prototype
source share