如何在JavaScript中实现部分类?

时间:2014-01-30 06:24:56

标签: javascript partial-classes

如何在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的其他实例。我希望类的新实例包含部分扩展的所有定义。

1 个答案:

答案 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"