2014-01-30 84 views
1

如何在JavaScript中實現部分類?如何在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

從這個代碼片斷開始:

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"