Improvement of class definition vs instantiation (#75)
old syntax:
OpenLayers.A = Class.create();
OpenLayers.A.prototype =
Object.extent( new OpenLayers.X(),
Object.extent( new OpenLayers.Y(), {
//prototype goes here
}));
new syntax:
OpenLayers.A = OpenLayers.Class.create();
OpenLayers.A.prototype =
OpenLayers.Class.inherit( OpenLayers.X, OpenLayers.Y, {
//prototype goes here
});
Besides simply being more readable and understandable, the main benefit of this new enhancement (see r1647 for details) is that it removes the extraneous calls to classes' initialize() method during class definitions. This means no more do you need to test
if (arguments.length > 0)
inside a superclass's constructor before doing instance-specific work, because it will only be called on instantiation of a new class.