Еще один вопрос (скорее просьба):
Можно ли изменить этот конструктор так, чтобы в методе класса-потомка инструкция "Child.superclass.prototype.methodName.apply(t his, arguments)" выглядела не так громоздко, но чтобы ее так же можно было вызывать в любом месте расширяемого метода дочернего класса? Чисто для эстетики кода?
var Class = (function() {
var extend = Object.extend = function(self, obj) {
if (self == null) self = {};
for (var key in obj) self[key] = obj[key];
return self;
}
return function(parent, declaration) {
var Klass = function() {
this.initialize.apply(this, arguments);
}
if (typeof parent == 'function') {
function F(){}
F.prototype = parent.prototype;
Klass.prototype = new F();
} else {
if (parent != null) declaration = parent;
parent = Object;
}
extend(Klass.prototype, declaration).initialize || (Klass.prototype.initialize = Function.blank);
Klass.superclass = parent;
Klass.prototype.superclass = parent.prototype;
return Klass.prototype.constructor = Klass;
};
})();