@Sneiksus

Почему не работает код?

Код для реализации паттерна наблюдатель.Ошибка в строке i.notify(this)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
class Observer{
 
 constructor() {}   

 notify(e){
  console.log(`cislo je ${e.num}`);
 }

}

class Subject{

 constructor(cislo){
  this.observers = [];
  this.num = cislo;
 }

 add(observ){
  this.observers.push(observ);
 }

 notify(){
  for(var i in this.observers)
   i.notify(this);
 }

}



function main(){
 var s = new Subject(1);
 s.add(new Observer());
 s.add(new Observer());
 
 s.notify();
 s.num += 1;

 s.notify();
 s.num += 1;

 s.notify();
}

    </script>
</head>
<body>
    <button onclick="main()">go</button>
</body>
</html>
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
FFxSquall
@FFxSquall
Могу писать код, могу не писать
Используйте for..of
for(let i of this.observers) {
  i.notify(this);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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