Here”s the short explanation of how to do inheritance with javascript. This was the best site I found on the subject and I tell the same story albeit tersely.
I defined a base class, called Base just to be clear:
Base = function()
{
}
Base.prototype.say = function(foo)
{
return foo;
}
Then I defined a class to extend Base called Extender:
Extender.prototype = new Base;
function Extender()
{
// this line calls parent class constructor
// like saying super() in Java
// or like using parent::Base() in PHP
Base.call(this);
}
You will have problems if you try to say Extender = function() {}…at least it didn”t work for me written that way.
Override say() method of parent class, but I also call the parent class method:
Extender.prototype.say = function(foo)
{
// in this case we override but also call the parent method
return 'extend ' + Base.prototype.say(foo);
}
This was tested with jsunit.