У меня есть конструктор в классе, который устанавливает свойства на основе аргументов, переданных при создании функции, а также при вызове другой функции на основе этих аргументов, но я столкнулся с проблемой.Я решил обойти, но должен быть более элегантный способ написать это (не каламбур).
Вот мой конструктор:
constructor(name,model,version){
// create optional parameters to set basic values
this.name = name;
this.model = model;
this.version = version;
if(model === undefined || version === undefined){
this.make = "";
this.model = "";
this.version = "";
this.prop3 = 0
this.prop4 = 0;
this.prop5 = 0;
}
else{
this = getVersionAttrs(model,version); }
Этот код не работает, если я заменю this
на this.what
, тогда код функционирует, но устанавливает все свойства как свойства OBJECT.what, а не непосредственно OBJECT.
Я заменил оператор else следующимэто работает:
else{
temp = getVersionAttrs(model,version);
for(var x in temp){ this[x] = temp[x]; }
}
Кто-нибудь знает, как присвоить этот объект, который я получаю от функции getVersionAttrs()
, объекту, который создается?Ака свойства возвращаемого объекта должны стать свойствами создаваемого объекта.
Заранее спасибо, я почесал голову над этим.