gpt4 book ai didi

javascript - 如何提取关闭某些变量的匿名回调?

转载 作者:行者123 更新时间:2023-11-30 15:26:40 25 4
gpt4 key购买 nike

我有一个使用 Array.prototype.forEach 并向其传递回调的函数。我想将该回调提取到一个单独的函数中,以便我可以对其进行测试。问题是回调使用外部函数的参数,回调的签名当然由 Array.prototype.forEach 确定,我无法更改它。有什么办法可以提取此回调?代码示例如下:

var enableMarks = function (arrEvents, arrGeneratedEvents) {
var marksLength = arrEvents[0].marks().length;
var generatedMark;
var i;
for (i = 0; i < arrGeneratedEvents.length; i++) {
programEvents.forEach(function (programEvent) {
if (programEvent.pairOrderToShow === arrGeneratedEvents[i]) {
generatedMark = generateNumber(0, marksLength - 1);
}
//some other code here, not important for question
});
}

};

因此,我的回调使用了来自外部函数的 arrGeneratedEvents,我不知道是否有可能以某种方式将其传递给提取的回调。

最佳答案

let cbfunc = function (programEvent, index, arrGeneratedEvents,i) {
if (programEvent.pairOrderToShow === arrGeneratedEvents[i]) {
generatedMark = generateNumber(0, marksLength - 1);
}
//some other code here, not important for question
};

programEvents.forEach(cbfunc);

现在您可以从代码中的任何位置将 cbfunc 作为函数调用。

关于javascript - 如何提取关闭某些变量的匿名回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42853830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com