"Jump dictionaries",切换语句,或者如何在没有 eval 的情况下做"jump dictionaries"?



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

如果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'])

谢谢。

使用匿名函数:
var jump = {
    "1":some_func,
    "2":function() {find_my("cat");},
    "3":function() {find_my("dog");}
}

现在你可以调用:

jump["3"]();
jump["2"]();
jump["1"]();

最新更新