【问题标题】: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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多