我的类定义为:
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;
}