我开始学习咖喱函数,并认为拥有一种函数可以使我在类似dom元素的组(属于同一父级的输入或选择组)中找到满足回调函数的
我的目标是拥有一个curried函数,我可以在其中传递包含要运行{{1}的元素(类为parentId
)的DOM元素的id(groupClassName
)。 } 上。我设法使curried函数正常工作,但是找不到通过callback
方法作为参数的方法。目前,该方法(.filter或.find方法)已硬编码在函数中。我认为,如果我可以将其作为参数传递,并且只有一个curried函数,可以在其中决定使用哪种原型方法,那将更加DRY。
array.prototype
我正在使用的回调示例如下:
const filterGroups = parentId => groupClassName => callback => {
const groups = Array.from(
document.getElementById(parentId).getElementsByClassName(groupClassName)
);
return groups.filter(group => callback(group));
};
const findGroups = parentId => groupClassName => callback => {
const groups = Array.from(
document.getElementById(parentId).getElementsByClassName(groupClassName)
);
return groups.find(group => callback(group));
};
目前,我无法通过数组原型方法(过滤器或查找),必须创建两个不同的咖喱函数export function altDateGroupEmpty(group) {
const selects = Array.from(group.getElementsByTagName("select"));
return selects.every(select => select.value === "");
}
和filterGroups
。这些工作按预期进行,但我想将数组原型方法作为附加参数传递,以使此代码更加干燥。
在我刚开始了解如何在代码中使用咖喱函数的情况下,我非常乐于接受不同的情况
答案 0 :(得分:2)
您可以为原型使用另一个参数,并使用Function#call
通过Action[] actions = new Action[100];
for (int i = 0;i< actions.Length; i++)
{
actions[i] = () => Console.WriteLine("Hello"+ i);
}
调用原型。
Action[]
致电
thisArg