Я делаю сводную функцию, которая будет отображать сводку myToDos, но в консоли она показывает: «У вас сегодня встречи NaN!» пока я использую все переменные числового типа.
let myTodos = {
day: 'Monday',
meetings: 0,
meetDone: 0,
addMeeting: function(num){
this.meetings = this.meetings + num;
},
meetDone: function(meet=0) {
this.meetDone = this.meetDone + meet;
},
resetDay: function(){
this.meetings = 0;
this.meetDone = 0;
},
summary: function(){
let leftmeetings = this.meetings - this.meetDone;
return `You have ${leftmeetings} meetings today!`
}
}
myTodos.addMeeting(5);
myTodos.meetDone(3);
console.info(myTodos.summary());
Я ожидаю вывод как
javascript
"You have 2 meetings today!"
У вас есть дублированные свойства в вашем объекте.. meetDone
. Я не думаю, что это будет работать хорошо.
Как упоминалось в комментариях, у вас есть повторяющиеся свойства.
Переименование meetDone
в done
устранит конфликт.
let myTodos = {
day: "Monday",
meetings: 0,
done: 0,
addMeeting: function(num) {
this.meetings = this.meetings + num;
},
meetDone: function(meet = 0) {
this.done = this.done + meet;
},
resetDay: function() {
this.meetings = 0;
this.meetDone = 0;
},
summary: function() {
let leftmeetings = this.meetings - this.done;
return `You have ${leftmeetings} meetings today!`;
}
};
myTodos.addMeeting(5);
myTodos.meetDone(3);
console.info(myTodos.summary());
Выход:
You have 2 meetings today!
Вы определили
meetDone
и как числовое свойство, и как метод. (Функции нельзя вычитать разумно, поэтомуNaN
) Разделите имена, и ваш код заработает. Голосование за закрытие как опечатка