2014-01-30 2 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" 

Я хочу некоторые свойства этого класса должны быть объявлены где-то в другой части кода, возможно, в другом файле. Я могу легко расширить myObj в JavaScript, но затронуты только 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" 
Смежные вопросы