Код:
<div id="menu">
<button data-action="save">Сохранить</button>
<button data-action="load">Загрузить</button>
<button data-action="search">Поиск</button>
</div>
class Menu {
constructor(elem) {
this._elem = elem;
elem.onclick = this.onClick.bind(this); // (*)
}
save() {
alert('сохраняю');
}
load() {
alert('загружаю');
}
search() {
alert('ищу');
}
onClick(event) {
let action = event.target.dataset.action;
if (action) {
this[action]();
}
}
}
new Menu(menu);
Не понимаю эту часть:
constructor(elem) {
this._elem = elem;
elem.onclick = this.onClick.bind(this); // (*)
}
Чему именно здесь присваивается
elem.onclick?
this._elem записывается внутри созданной функции в объект
this, как объект
_elem и затем
onclick = this.onClick.bind(this); становится свойством этого объекта?
Или как? Вообще не пойму.
Поможете? Буду очень благодарен за помощь!