Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2: Creating a Class on the Fly - Doc JavaScript | WebReference

Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2: Creating a Class on the Fly - Doc JavaScript


Netscape 6, Part VI: Object-Oriented DOCJSLIB 1.2

Creating a Class on the Fly

The function createTheProperSubClass() creates on the fly the proper browser-dependent object. The function actually defines a class with one property, className, and one method, getTheProperSubClass. The property className depends on the browser type:

var browserType = new browserSniffer();
  if (browserType.ie4) {
    this.className = "docjslibIE4SubClass";
  }
  else if (browserType.ie5) {
    this.className = "docjslibIE5SubClass";
  }
  else if (browserType.ns4) {
    this.className = "docjslibNS4SubClass";
  }
  else if (browserType.ns6) {
    this.className = "docjslibNS6SubClass";
  }

We then define the method getTheProperSubClass():

this.getTheProperSubClass = getTheProperSubClassMethod;
  
  function getTheProperSubClassMethod() {
    // example: return new docjslibIE5SubClass();
	return eval('new ' + this.className + '()');
  }

Notice that the ultimate impact of createTheProperSubClass() function is to generate a string for a new object. For IE5, it should be:

new docjslibIE5SubClass();

For NS6, it should be:

new docjslibNS6SubClass();

We'll show you later in this column how to assign a variable name to this new object.

Next: How to write a browser-independent superclass

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/6.html