Javascript 删除addEventListener中有pasing参数的元素上的侦听器

Javascript 删除addEventListener中有pasing参数的元素上的侦听器,javascript,Javascript,我怎样才能像这样删除VentListener?我知道在addEventListener中的move函数中,我传递了一个匿名函数,但我必须在那里传递一些参数。我如何解决这个问题 move = (id) => { roadFields.forEach((el) => { el.addEventListener('click', (e) => this.handleRoadField(id, matrixBoard, e)); }); }; hand

我怎样才能像这样删除VentListener?我知道在addEventListener中的move函数中,我传递了一个匿名函数,但我必须在那里传递一些参数。我如何解决这个问题

move = (id) => {
    roadFields.forEach((el) => {
        el.addEventListener('click', (e) => this.handleRoadField(id, matrixBoard, e));
    });
};

handleRoadField = (id, matrixBoard, event) => {
    if (true) {
        roadFields.forEach(el=>{
            el.removeEventListener('click', this.handleRoadField);
        })
    } else {
        console.log('X');
    }
};

尝试定义一个
onClick
函数,并在两种方法中使用它:

move = (id) => {
    roadFields.forEach((el) => {
        el.addEventListener('click', onClick);
    });
};

handleRoadField = (id, matrixBoard, event) => {
    if (true) {
        roadFields.forEach(el=>{
            el.removeEventListener('click', onClick);
        })
    } else {
        console.log('X');
    }
};

function onClick(e) {
    this.handleRoadField(id, matrixBoard, e);
}

我很高兴能帮上忙