Это не совсем ответ, скорее, я делюсь своими выводами и, надеюсь, получаю какой-то критический аргумент за / против, так как конкретно я не знаю, насколько это эффективно.
Недавно у меня возникла необходимость сделать это для моего проекта. Я сделал это, используя Object.assign
, точнее это делается примерно так: Object.assign(new Person(...), anObjectLikePerson)
.
Вот ссылка на мой JSFiddle , а также основная часть кода:
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.getFullName = function() {
return this.lastName + ' ' + this.firstName;
}
}
var persons = [{
lastName: "Freeman",
firstName: "Gordon"
}, {
lastName: "Smith",
firstName: "John"
}];
var stronglyTypedPersons = [];
for (var i = 0; i < persons.length; i++) {
stronglyTypedPersons.push(Object.assign(new Person("", ""), persons[i]));
}