我喜欢包含key:values的“跳转字典”的概念,其中value是函数。不过,我不确定我是否应该喜欢这个概念。
如果要使用if-else if
语句,我想替换一长串。 (我应该使用switch
语句吗?)
有没有一种方法可以在不使用eval的情况下实现“跳转字典”?
(我已经读过有关为什么评估无效的内容:
Why is using the JavaScript eval function a bad idea?
)
使用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"]();