使用不同名称的抛出回调函数

问题描述 投票:0回答:1

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

我有一个图像滑块,我正在尝试更改每张幻灯片中的文本。我在JavaScript中有Mutation Observer,它正在监视类列表以进行类更改,因此,当div具有“活动”类时,我将抛出一个回调函数。

轮播中有很多图像滑块;

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

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

因此,在这段代码中,我试图创建具有不同功能的观察者,但workOnClassAdd看起来像一个字符串,因此出现“这不是函数”错误。我如何在此forEach方法中抛出不同的变量?

仍然感谢,良好的编码:)

javascript arrays mutation-observers
1个回答
0
投票

您可以编写返回函数的函数。类似于:

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))
})
© www.soinside.com 2019 - 2024. All rights reserved.