я класс, определенный как:Javascript расширяет класс с помощью реквизитов?
function MyClass() {
}
MyClass.prototype = {
init: function() {
alert('My parent class!');
},
method1: function() {},
method2: function() {}
};
и свойства объекта:
{
init: function() {
MySubClass.superclass.init.apply(this, arguments);
alert('test!');
},
test: function() {
alert();
}
}
и я нужна функция, которая будет расширяет базовый класс (MyClass) с опорами (объекта) и вернуть новый расширенный подкласс (к MySubClass):
MySubclass = extend(MyClass, {
init: function() {
MySubClass.superclass.init.apply(this, arguments);
alert('test!');
},
test: function() {
alert();
}
});
Конструктор должен быть заменен новым конструктором (из init).
Мне нужен правильный путь.
Почему это не работает?
extend: function(bc, o) {
// result class (apply only first constructor)
var cls = function() {};
cls.prototype = bc.prototype;
for (var k in o)
cls.prototype[k] = o[k];
cls.superclass = bc.prototype;
return cls;
}
это объектно-ориентированное программирование, а MyClass - не объект. MyClass - это функция, которую я хочу расширить с помощью объекта. – xercool
@xercool 'MyClass' - фактически объект, хотя это объект' Function'. Просто FYI –