PavelScron
@PavelScron

Почему свойства объекта не получает значение других свойств?

Код

var lol = {
	salary: 15,
  bonus: 100,
  gen: 'girl',
  total: this.salary + this.bonus
  
}

console.table(lol);


почему свойство total NAN?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
rockon404
@rockon404
Frontend Developer
Через this в литерале объекта(вне тела функции) вы обращаетесь к глобальному контексту - window или undefined в строгом режиме. Демо.
Можно использовать геттер:
var lol = {
  salary: 15,
  bonus: 100,
  gen: 'girl',
  get total() {
     return this.salary + this.bonus;
   }
}

console.log(lol.total);

или метод:
var lol = {
  salary: 15,
  bonus: 100,
  gen: 'girl',
  getTotal() {
     return this.salary + this.bonus;
   }
}

console.log(lol.getTotal());
Ответ написан
Комментировать
BRAGA96
@BRAGA96
var lol = {
	salary: 15,
	bonus: 100,
	gen: 'girl',
	total: function() {
		return this.salary + this.bonus
	}
};
//> lol.total() -> 115

var lol = {
  salary: 15,
  bonus: 100,
  gen: 'girl'
};

lol.total = lol.salary + total.bonus;
//> lol.total -> 115
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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