我已經類定義爲: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對象。只是供參考 –