Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2: Class Inheritance - Doc JavaScript | WebReference

Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2: Class Inheritance - Doc JavaScript


Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2

Class Inheritance

Inheritance is a very important requirement from an object-oriented language. JavaScript does not support any OO primitives in its language, but you can implement most of the stuff you need. Let's look at the following example:

function superClass() {
  this.bye = superBye;
  this.hello = superHello;
  
  function superHello() {
    return "Hello from superClass";
  }
  
  function superBye() {
    return "Bye from superClass";
  }
}
function subClass() {
  this.inheritFrom = superClass;
  this.inheritFrom();
  this.bye = subBye;
  
}
function subBye() {
  return "Bye from subClass";
}
var newClass = new subClass();
alert(newClass.bye());
alert(newClass.hello());

We have a super class , superClass, and a sub class, subClass. superClass defines two methods: bye() and hello(). subClass inherits these two methods by:

this.inheritFrom = superClass;
this.inheritFrom();

and overrides the bye() method. When clicking here, you trigger the evaluation of bye() and hello() from the sub class. You can judge from the alert boxes that indeed the hello() method is as defined by the super class, while the bye() method is as overridden by the sub class.

Next: How to architect the include files

http://www.internet.com


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: February 12, 2001
Revised: February 12, 2001

URL: http://www.webreference.com/js/column77/3.html