class Game {
constructor(parentElement) {
let wrap = document.createElement('div');
wrap.className = 'wrap';
parentElement.appendChild(wrap);
this.nav = document.createElement('div');
this.nav.className = 'nav';
wrap.appendChild(this.nav);
this.x = document.createElement('div');
this.x.className = 'x';
this.x.innerHTML = 'win x:'
this.nav.appendChild(this.x);
this.btn = document.createElement('button');
this.btn.className = 'reset';
this.btn.innerHTML = 'reset';
this.nav.appendChild(this.btn);
this.o = document.createElement('div');
this.o.className = 'o';
this.o.innerHTML ='win o:'
this.nav.appendChild(this.o);
this.field = document.createElement('div');
this.field.className = 'field';
wrap.appendChild(this.field);
// this.field = [];
for (let i = 0; i < 9; i++) {
this.cell = document.createElement('div');
this.cell.className = 'cell';
this.field.appendChild(this.cell);
}
console.log(this.field.length)
}
}
в классе Game я создаю каркас html для мини игры. Вопрос: все "переменные" (this.x , this.nav, this.btn) я бы мог создать через let - как первую (wrap). В чем существенное отличие ??? не судите если это банально просто) я только изучаю js и бороду еще не отрастил)
Здесь wrap
- локальная переменная в конструкторе:
let wrap = document.createElement('div');
Здесь wrap
- свойство создаваемого объекта:
this.wrap = document.createElement('div');
Если ссылка нужна только внутри функции, используйте локальную переменную. Если ссылка на объект нужна в других методах или во внешнем коде, используйте свойство объекта.
Присваивание this.cell = ...
в цикле - бессмысленно.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть подобный календарь+расписаниеРасписание разделено на "утро" и "день"
как решить задачу года пользователь начинает скролить пренести его во вторую секцию http://genrichru/holmhill2/ ,тут с костылями ,как это првильно сделать...