.removeEventListener(...)
сработала, нужно передать ей вторым аргументом ту же самую функцию, что и была установлена как слушатель в функции .addEventListener(...)
this.mouseOverStar.bind(this)
НЕРАВНО this.mouseOverStar.bind(this)
this.mouseOutStar.bind(this)
НЕРАВНО this.mouseOutStar.bind(this)
this.clickOnStar.bind(this)
НЕРАВНО this.clickOnStar.bind(this)
.removeEventListener(...)
не сработает star.addEventListener("mouseover", this.mouseOverStar.bind(this));
star.addEventListener("mouseout", this.mouseOutStar.bind(this));
star.addEventListener("click", this.clickOnStar.bind(this));
star.removeEventListener("mouseover", this.mouseOverStar.bind(this));
star.removeEventListener("mouseout", this.mouseOutStar.bind(this));
star.removeEventListener("click", this.clickOnStar.bind(this));
.onclick
(как в прочем и на любое другое из .on...
можно повесить лишь один обработчик на один элемент, при попытке повесить следующий предыдущий будет потерян.6. Вот тут не понял. Обработчики на каком уровне абстракции находятся? Я бы делал обработчики на уровне объектов
7. Конечно на отдельную. Причем никак не связанную с физикой
2. Нет. Слой - это свойство объекта.
https://jsfiddle.net/lastuniverse/8147sjhq/1/