И если это список, то почему он создаётся как переменная?
И как это работает тогда?
function Menu(elem) {
this.save = function() {
alert('сохраняю');
};
this.load = function() {
alert('загружаю');
};
this.search = function() {
alert('ищу');
};
var self = this;
elem.onclick = function(e) {
var target = e.target;
var action = target.getAttribute('data-action');
if (action) {
self[action]();
}
};
}
new Menu(menu);
<div id="menu">
<button data-action="save">Сохранить</button>
<button data-action="load">Загрузить</button>
<button data-action="search">Поиск</button>
</div>
Смотрите, к св-ву/методу объекта можно обратиться двумя способами
1 - через точку ( дот нотация )
const a = {
method: (str) => alert(str),
prop: 'prop'
}
a.method(a.prop);
2 - через скобки квадратные
const a = {
method: (str) => alert(str),
prop: 'prop'
}
a['method'](a['prop']);
Раз во втором варианте используется строчка, то мы эту строку можем сохранить в переменную
const a = {
method: (str) => alert(str),
prop: 'prop'
}
const action = 'method';
a[action](a['prop']); // передали именно переменную, которая вернула нужный метод/св-во
В вашем коде как раз это и происходит, getAttribute
возвращает значение атрибута в виде строки, которую мы дальше используем, что бы вызвать нужный метод объекта
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно узнал, что gulp полностью перешел с 3 версии на 4Решил попробовать новую версию с ее новыми возможностями, но тут возникли проблемы при...
Сделал фильтр для фильтрации ввода чисел, но чего-то не хватаетПодскажите, почему не работает фильтр в поле input
Есть код в котором при нажатии кнопки, слова "атрибут" заменяются на ***Что добавить в эту строку, чтобы заменялись "атрибут" и "Атрибут" слова?
Почему данный код приводит к возникновению ошибки?