我有一段代码类似于这样:
switch(v[0]){
case 1:
$(o).test({default:true}).on("click", function(e){
stopf(e);
func1(v[1]);}
});
break;
case 2:
$(o).test({default:true}).on("click",function(e){
stopf(e);
func2(v[1]);}
});
break;
case 3:
$(o).test({default:true}).on("click",function(e){
stopf(e);
func3();}
});
break;
case 4:
$(o).test({default:true}).on("click",function(e){
stopf(e);
func4();}
});
break;
case 5:
$(o).test({default:true}).on("click",function(e){
stopf(e);
func5(v[1],v[2]);}
});
break;
// AND ON AND ON....
}
正如您所看到的,每行末尾唯一不同的部分是funcX()
。有没有什么方法可以缩短这段代码呢?也许像这样(已尝试,不起作用):
switch(v[0]){
case 1: myfunc=func1(v[1]);break;
case 2: myfunc=func2(v[1]);break;
case 3: myfunc=func3();break;
case 4: myfunc=func4();break;
case 5: myfunc=func5(v[1],v[2]);break;
}
$(o).test({default:true}).on("click",function(e){
stopf(e);
myfunc);
}