“跳字典”,转换语句,或如何做“跳字典”没有评估?

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

如果if-else if语句,我想replace一个长列表。 (我应该使用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']) 

谢谢。

使用匿名function:

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

现在你可以打电话给:

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