Эксперимент показывает, что без шаблонных литералов значение интерпретируется как значение атрибута содержимого , который может быть только строками .
Итак, следующий [неправильный] HTML:
<button id="x" on-click="(e) => console.log(e)"> <!-- DON'T DO THIS -->
эквивалентно присвоению строки атрибуту on-click
вместо установки обработчика click
-event:
document.getElementById('id').setAttribute('on-click', '(e) => console.log(e)');
Вы можете подтвердить это поведение в этой демоверсии , нажав getEventListeners()
на кнопке.