tema said:
Here you gohttp://jsfiddle.net/agentcooper/qLMUz/
In first place it would be nice if the next time you post your code to
be directly here. It is definitely easier to quote different parts of
your code if it is in messages. Of course you could post here and post
link in jsfiddle. Also if jsfiddle removes your code the archive of
the group will store a broken link. In the last place not everyone is
on the web in newsgroup like that.
Such a design is better to avoid. I would use wrapper or subclassing
`Sum' instead of overwriting the constructor. Your approach after
overwriting the `Sum' with new function If I would like to extend the
`Sum.prototype', I would have a big problem. The `Sum' is not longer
constructor, it is factory for overwritten `Sum'.
Sum.prototype.missedLogic = function () {
console.log('Missed logic');
};
var h = new Sum(2, 3);
h.missedLogic(); //TypeError
If you and the author want real overwritten constructor, you could
use:
function hello() {console.log("hello")}
function Sum(x, y) { this.a=x; this.b=y; }
Sum = (function () {
var _Sum = Sum;
function SumWrapper() {
_Sum.apply(this, arguments);
hello();
}
SumWrapper.prototype = new _Sum;
return SumWrapper;
})();