этот метод класса представления display () не работает?

В этом q я не добавлял класс модели и события, но добавлял класс представления и контроллера. Это игра в крестики-нолики q. Посмотреть класс игры крестики-нолики

class View {
 constructor() {
  this.playEvent = new Event();
 }

 display() {
  const board = document.createElement('div');
  board.className = 'board';

  this.cells = Array(9).fill().map((_, i) => {
    const cell = document.createElement('div');
    cell.className = 'cell';

    cell.addEventListener('click', () => {
      this.playEvent.triggerListener(i);
    });

    board.appendChild(cell);

    return cell;
  });

  this.message = document.createElement('div');
  this.message.className = 'message';

  document.body.appendChild(board);
  document.body.appendChild(this.message);
 }

 victory(winner) {
  this.message.innerHTML = `${winner} wins!`;
 }

 draw() {
  this.message.innerHTML = "It's a draw!";
 }
}

этот дисплей не работает, мой класс контроллера

class Controller {
constructor(model, view) {
    this.model = new Model();
    this.view = new View();

следующие 3 строки для соединения Model и View

     this.view.playEvent.addListener(moveIndex => { this.model.gameStart(moveIndex); });
     this.model.gameWinnerEvent.addListeners(winner => { this.view.gamewinner(winner); });
     this.model.gameDrawEvent.addListeners(() => { this.view.gameDraw(); });
 }
 run(){
    this.view.display()
 }
}

здесь я запускаю всю программу

const app = new Controller()
app.run()

person Akshay Jain    schedule 03.11.2020    source источник


Ответы (1)


Возможно, вам следует определить свой метод отображения следующим образом:

function display() {
// your code
}

Определив функцию, как вы, JS понимает, что она должна выполняться при определении класса (как это делает конструктор)

person Esteban MANSART    schedule 03.11.2020
comment
Метод отображения находится только в классе. не могли бы вы проверить код еще раз и, пожалуйста, обратите внимание на мой отступ. - person Akshay Jain; 04.11.2020