"跳转字典",切换语句,或如何在没有评估的情况下"跳转词典"?

cat*_*aki 1 javascript eval switch-statement node.js

我喜欢"跳转字典"的概念,其中包含键:值,其中值是函数.不过,我不确定我是否应该喜欢这个概念.

我想替换一个长列表if if-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'])
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nie*_*sol 6

使用匿名函数:

var jump = {
    "1":some_func,
    "2":function() {find_my("cat");},
    "3":function() {find_my("dog");}
}
Run Code Online (Sandbox Code Playgroud)

现在你可以打电话:

jump["3"]();
jump["2"]();
jump["1"]();
Run Code Online (Sandbox Code Playgroud)