Как уже упоминал @AndrewBone в своем комментарии, у вашего объекта есть два свойства с именем meetDone
. Последний перезаписывает первый, поэтому, когда вы добавляете this.meetings + this.meetDone
, вы добавляете функцию к числу, что приводит к отображению NaN. Измените имя одного из свойств, meetingDone
будет даже более информативным, чем meetDone
IMO
let myTodos = {
day: 'Monday',
meetings: 0,
meetDone: 0,
addMeeting: function (num) {
this.meetings = this.meetings + num;
},
meetingDone: function (num) {
this.meetDone = this.meetDone - num;
},
resetDay: function () {
this.meetings = 0;
this.meetDone = 0;
},
report: function () {
let meetleft = this.meetings + this.meetDone;
return `Yo have ${meetleft} meeting for today!`;
},
}
myTodos.addMeeting(2);
myTodos.addMeeting(5);
myTodos.meetingDone(23);
console.log(myTodos);
console.log(myTodos.report());