我试图弄清楚如何将参数传递给命名回调函数?
例如我有
var result = this.data;
var groupFilter = $("#groupSelect");
var functionFilter = $("#functionSelect");
var skillFilter = $("#skillSelect");
var uniqSkils = _(result).map('skill').uniq().map(populateDropdown(skillFilter));
var uniqFunctions = _(result).map('function').uniq().map(populateDropdown(functionFilter));
var uniqgroups = _(result).map('group').uniq().map(populateDropdown(groupFilter));
function populateDropdown(element) {
element.append($('<option>', {
value: item,
text: item
}))
}
结果本质上包含三个元素的下拉值。我创建了 3 个数组,然后出于明显的原因调用了 uniq,然后我想遍历每个数组、每个项目并将其添加到正确的元素中。
但是我不知道如何在使用命名回调时传入元素
最佳答案
您可以让 populateDropdown 返回绑定(bind)到特定元素的闭包:
function populateDropdown(element) {
return function(item) {
element.append($('<option>', {
value: item,
text: item
}));
}
}
关于javascript - 如何在高阶函数中将参数传递给命名回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417562/