У меня есть запрос http, который получает этот объект Json из базы данных nosql:
let jsonBody = {
birthday : 1997,
firstname: 'foo',
lastname:'bar'
}
Затем я хочу загрузить эту информацию в модель Стьюдента:
class Student{
constructor(){
}
getFullname(){
return this.lastname+' '+this.firstname
}
getApproxAge(){
return 2018- this.birthday
}
}
Обычно,Я бы добавил этот метод к этому классу:
fromJson(json){
this.studentId = json.studentId;
this.birthday = json.birthday;
this.firstname = json.firstname;
this.lastname = json.lastname;
}
Я бы использовал его следующим образом:
let student = new Student()
student.fromJson(jsonBody)
console.log(student.getFullname())
console.log(student.getApproxAge())
Это прекрасно работает, но моя проблема в том, что у меня есть: 100 свойств в реальности.Придется ли мне писать все свойства по одному в методе fromJson?
А также, если имя свойства изменилось, скажем: lastname стало LastName, мне придется это исправить?
Есть ли более простой способ динамически присваивать эти значения объекту-ученику, но сохранять все его методы ??
Примерно так:
fromJson(json){
this = Object.assign(this, json) //THIS IS NOT WORKING
}