我想根据我找到的输入调用不同的函数。如果输入与其中一个键匹配,我想调用相应的函数 - 使用一些参数:
var commands = {
'key1': someFunction,
'key2': otherFunction
};
键是字符串,为了更容易,我创建了command_keys变量:
var command_keys = Object.keys(commands);
我进一步定义了两个函数:
function someFunction(param) {
// do sth.
};
function otherFunction(param) {
// do sth. else
};
然后我有条件检查密钥并根据我找到的密钥调用其中一个函数:
if (command_keys.indexOf(some_string) > -1) {
index = command_keys.indexOf(some_string);
commands[index](some_param);
}
然而,我收到错误:
Uncaught TypeError: commands[index] is not a function(anonymous function)
感谢您的想法。
答案 0 :(得分:3)
我认为你根本不需要command_keys
。仅commands
就足以满足您在此描述的内容。
var commands = {
'key1': someFunction,
'key2': otherFunction
};
var command = commands[some_string];
if (typeof command === 'function') {
command(some_param);
}