如何在JavaScript中实现部分类?
例如,我有一个这样的类:
function MyClass(){
this.myName = "I am native member";
};
myObj = new MyClass();
console.log(myObj.myName); // Will print "I am native member"
我希望这个类的一些属性在另一段代码中的其他地方声明,可能在另一个文件中。我可以在JavaScript中轻松扩展myObj
,但只会影响myObj
,而不会影响MyClass
的其他实例。我希望类的新实例包含部分扩展的所有定义。
答案 0 :(得分:0)
从此代码段开始:
function MyClass(){
this.myName = "I am native member";
for (var key in MyClass.Partial) {
MyClass.Partial[key].apply(this, arguments);
}
};
MyClass.Partial = {};
如果我想在其他地方扩展课程,我可以写:
MyClass.Partial.Def1 = function(){
/* here Def1 is just a meaningful name.
It has no impact on MyClass access behavior
*/
this.myLastName = "I am partial member";
};
myObj = new MyClass();
console.log(myObj.myName); // Will print "I am native member"
console.log(myObj.myLastName); // Will print "I am partial member"