抛出具有不同名称的回调函数

Throwing Callback functions with different names

我是编码新手,这是我的第一个问题,所以我会尽量解释清楚。

我有一个图像滑块,我正在尝试更改每张幻灯片中的文本。我在 JavaScript 中有 Mutation Observer,它正在观察 class 列表中 class 的变化,所以当 div 有 "active" class 时,我抛出一个回调函数。

轮播里面有很多图片滑块;

carousel.forEach(e=>{
    let i= 1;
    let workOnClassAdd=`workOnClassAdd${i}`
    new ClassWatcher(e, 'active',workOnClassAdd,workOnClassRemoval)
    i++;
})

function workOnClassAdd1(){};
function workOnClassAdd2(){};
.
.

所以在这段代码中,我试图创建具有不同功能的观察者,但 workOnClassAdd 看起来像一个字符串,所以我得到了 "this is not a func" 错误。我如何在此 forEach 方法中抛出不同的变量?

总之谢谢,写得很好 :)

您可以编写 return 函数。类似于:

function getCallbacksFor(iValue) {
  return [
    function workOnAdd() {
      console.log('add class work for', iValue);
    },
    function workOnRemove() {
      console.log('remove class work for', iValue);
    },
  ];
}

carousel.forEach((e, idx) => {
  new ClassWatcher(e, 'active', ...getCallbacksFor(idx))
})