@strangeviking

Как сделать присвоение через for/in?

Есть вот такой кусок кода
function Model(option){
    this.name = option ? option.name : '';
    this.age = option ? option.age : 0;
    this.year = option ? option.year : 0;
    this.examsTaken = option ? option.examsTaken : 0;
    this.takeExam = option ? option.takeExam : function() {};
    this.changed = option ? option.changed : false;
    return this;
}


Как его переписать с помощью цикла for/in ?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
this.name = '';
this.age = 0;
this.year = 0;
// ...
for (var x in options) {
  if (options.hasOwnProperty(x)) {
    this[x] = options[x];
  }
}


Но лучше сделать так:
this.name = '';
this.age = 0;
this.year = 0;
var availableOptions = ['name', 'age', 'year'];
// ...
for (var i = 0; i < availableOptions.length; i ++) {
  var x = availableOptions[i];
  if (options.hasOwnProperty(x)) {
    this[x] = options[x];
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы