common is a small set of JavaScript functions that enable simple object inheritance. Using these functions I aim to build a library of JavaScript classes and objects to aid DOM scripting (or any other kind of scripting).
The important thing about this project is not the set of JavaScript functions that enable inheritance, it is the development environment. The web IDE provides a visual model of common classes. Once you have a map of the classes in your head, object-oriented development is a breeze...
This project is very much in its infancy and I’m not sure where it is ultimately headed. Although it is a pet project, if it works out OK, I may use it for more serious work. I’m definitely enjoying building it whatever it becomes. :-)
Using the core functions previously mentioned, I hope to evolve common into a neat little development environment. Each step in the evolution process will take what has existed before and specialize it. The first variation is special0. The most recent variation is special0.1
Core functionality relies on two JavaScript functions that are not supported on all platforms:
Function.apply
(not supported by IE5.0)arguments.callee.caller
(not support by Opera)I will add support for the above two platforms in future versions (probably special0.3 or special0.4). The web interface relies heavily on DOM scripting, so only modern browsers should be used. However, classes and objects produced by common may be used in any browser.
In current variations of common, comments are preserved only in Internet Explorer. Other browsers reformat JavaScript functions and inline comments are lost. For that reason, I recommend using Internet Explorer while common is in its infancy. In future versions, class definitions will be stored using HTML rather than JavaScript and comments will be preserved on all platforms.
The first variation of common. Only one class - the Common
class. The object/class browser exists as a separate JavaScript file.
This version provides:
Examples:
A variation of special0.
special0.1 adds the following.
System
classExamples:
System.sysin
.A variation of special0.1.
The idea is that special1 is pretty much the same as special0 except that it is written in entirely in special1.