我确定以前有人问过这个问题,但我不知道要搜索什么。
因此,我希望使用与单击的项目相对应的字符串调用函数,但我只想将任何新项目添加到字符串数组中。
var menuList = ["overview", "help", "search"];
var functionCalls = [
function() { toggleMenu(menuList[0]); },
function() { toggleMenu(menuList[1]); },
function() { toggleMenu(menuList[2]); },
];
在循环中这样使用:$("something").click(functionCalls[i])
这就是我想要做的(但显然它不起作用):
for (var i in menuList) {
// This does not work because the closure references 'i'
// which, at the end, is always the index of the last element
$("something").click(function() {
toggleMenu(menuList[i]);
});
// this works, but I have to define each closure
$("something").click(functionCalls[i]);
}
如何创建一个接受基于变量的值但不保留对变量的引用的匿名函数?