Я видел людей, использующих объект вместо функции в addEventListener(eventName, objInsteadOfFunction)
. Почему это могло быть? Это только похоже на необходимость наличия состояния.
const TbodyApp = {
handleEvent: handleTbodyClick,
curElementSelectionState,
handleTrClick: function init() {
return handleTrClick.bind(this,
getRenderDecisions, getNewState, renderChangesBound);
},
isTargetValidForTrClickHandler,
isTrClickHandlerToBeActivated
};
TbodyApp.handleTrClick = TbodyApp.handleTrClick();
Я попытался использовать объект, и некоторые функции стали иметь меньше параметров и вместо этого начали использовать это. Вдобавок ко всему, мне пришлось сделать гимнастику, как в приведенном выше коде, чтобы инициализировать объект.
function handleTbodyClick(evt) {
const target = evt.target;
if (this.isTargetValidForTrClickHandler(target)) {
this.isTrClickHandlerToBeActivated(evt, target);
}
}
this-es в этой функции были параметрами и теперь находятся в объекте. Это только усложняет тестирование, а код - более запутанным. Есть ли смысл использовать объект вместо функции в прослушивателе событий?