是否有更好的方法/编码样式可以在不使用if语句的情况下在不同条件下执行不同的功能?
我已经使用JavaScript以以下方式进行编码:(例如,处于不同条件下的函数可能会使用来自API的不同提取方法)
if(answer == 'a'){
foo()
if(answer == 'b'){
bar()
if(answer == 'c'){
bar_2()
if(answer == 'd'){
foo_3()
我曾经考虑过使用
eval()
,但这是一个好方法吗?例如,创建一个对象包括作为条件的键和作为属性的函数名。conditions:{
a: 'foo',
b: 'bar',
c: 'foo_2',
d: 'bar_2',
}
并像
eval(this.conditions[a])
一样运行但是我也听说使用
eval
很难进行测试。 最佳答案
是的,您可以使用函数构建条件对象并调用它们:
function foo(){...}
function bar(){...}
var conditions : {
'a': foo,
'b': bar,
}
conditions[answer]()
注意:如果您不知道自己在做什么,请尽量不要使用
eval
,这会带来安全风险关于javascript - 根据条件执行不同的功能,而无需if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52329970/