【问题标题】:How can I implement partial classes in JavaScript?如何在 JavaScript 中实现部分类?
【发布时间】:2014-01-30 06:24:56
【问题描述】:
如何在 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 的其他实例不受影响。我希望该类的新实例包含部分扩展中的所有定义。
【问题讨论】:
标签:
javascript
partial-classes
【解决方案1】:
从这段代码开始sn-p:
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"