首页 > 解决方案 > 在事件侦听器中使用对象有什么意义吗?

问题描述

我见过人们在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 是参数,现在在对象中。它只会使测试更加困难,代码更加混乱。在事件侦听器中使用对象而不是函数是否有意义?

标签: javascriptdom-events

解决方案


推荐阅读