Код:
<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);
становится свойством этого объекта?
Или как? Вообще не пойму.
Поможете? Буду очень благодарен за помощь!