1

我喜欢包含 key:values的“跳转字典”的概念,其中的值是函数。不过,我不确定我是否应该喜欢这个概念。

我想替换一长串 ifif-else if语句。(我应该使用switch语句吗?)

有没有办法在不使用 eval 的情况下实现“跳转字典”?(我已经读过这篇关于为什么 eval 不好的文章: 为什么使用 JavaScript eval 函数是个坏主意?

使用 eval 的示例

function some_func(arg) { console.log('I am a some func') };
function find_my(arg) { console.log('we are looing for your ' + arg); };

var jump = {
    '1' : 'some_func()',
    '2' : 'find_my("cat")',
    '3' : 'find_my("dog")'
}

eval(jump['3'])
eval(jump['2'])
eval(jump['1'])

谢谢。

4

1 回答 1

6

使用匿名函数:

var jump = {
    "1":some_func,
    "2":function() {find_my("cat");},
    "3":function() {find_my("dog");}
}

现在您可以致电:

jump["3"]();
jump["2"]();
jump["1"]();
于 2013-05-18T03:56:45.083 回答