February 18, 2001 - Establishing an Object Hierarchy
![]() |
February 18, 2001 Establishing an Object Hierarchy Tips: February 2001
Yehuda Shiran, Ph.D.
|
function superClass() {
this.bye = superBye;
this.hello = superHello;
}
function subClass() {
this.inheritFrom = superClass;
this.inheritFrom();
this.bye = subBye;
}
function superHello() {
return "Hello from superClass";
}
function superBye() {
return "Bye from superClass";
}
function subBye() {
return "Bye from subClass";
}Click here to invoke the following script that activates these objects:
var newClass = new subClass();
function printSub() {
alert(newClass.bye());
alert(newClass.hello());
}
Convince yourself that it is working correctly. The methods bye() and hello() are first defined in superClass(). The method bye() is being overridden in subClass(). The first two lines of subClass() does the original inheritance between the two classes. You first define the inheritFrom method, and then you call it:
this.inheritFrom = superClass;
this.inheritFrom();
The second method to establish a class hierarchy is by creating an object of the superclass and assign it as a prototype of the subclass object:
subClass.prototype = new superClass;And the whole example is:
function superClass1() {
this.bye = superBye1;
this.hello = superHello1;
}
function subClass1() {
this.bye = subBye1;
}
subClass1.prototype = new superClass1;
function superHello1() {
return "Hello from superClass";
}
function superBye1() {
return "Bye from superClass";
}
function subBye1() {
return "Bye from subClass";
}Click here to invoke the following script that activates these objects:
var newClass1 = new subClass1();
function printSub1() {
alert(newClass1.bye());
alert(newClass1.hello());
}
Convince yourself that you get the same results as before: bye() from subClass() and hello() from superClass().


Find a programming school near you