Задача на объекты

Дайте отзыв по моему решению задачи на Объекты и методы (this). Что нужно исправить или усовершенствовать?

Попробуйте создать новый объект кошки со свойствами и добавьте два несколько методов:

  • метод сна (кошка спит, если сыта)

  • метод кушать (метод принимаем параметр количество каллорий еды)

  • после каждого сна кошка теряет 100 едениц еды (каллорий) Моё решение

let cat = {
  sleep: true,
  eating: 0,

  sleeping: function() {
    if(this.eating>0){
      this.sleep=true;
      alert('Кошка спит');
      this.eating=this.eating-100;
    } else {
      alert('Кошке нужно покушать');
    }
  }
}
sleeping(300);

Ответы (1 шт):

Автор решения: Anton Shchyrov

У вас кошка никогда не просыпается. и метода кушать я не вижу.

Что это такое

 sleeping(300);

Я не понял. Если это попытка вызвать метод cat.sleeping(), так нужно указывать имя объекта. Да и сам метод у вас не принимает никаких параметров

Я бы делал так

let cat = {
  energy: 0,
  eat: function(energy) {
    this.energy += energy - 0;
  },
  sleep: function() {
    if (this.energy >= 100) {
      this.energy -= 100;
      return true;
    } else
      return false;
  }
};

document.getElementById('eat').addEventListener('click', function() {
  cat.eat(document.getElementById('energy').value);
  console.log(cat.energy);
});

document.getElementById('sleep').addEventListener('click', function() {
  if (cat.sleep())
    console.log('Кошка спит');
  else
    console.log('Кошке нужно покушать');
});
<input id="energy" type="number" value="100"/><input type="button" id="eat" value="Кормить"/><br/>
<input type="button" id="sleep" value="Спать"/><br/>

→ Ссылка