我正在开发一个我们从以前的供应商继承的应用程序和客户端的许多地方javascript我看到这样的事情:
if (self.DESIGNEE_TYPE_SCREEN_ROUTE_REGEX.test(url)) {
goToSelectDesigneeType.call(self);
} else if (self.FUNCTION_CODES_SCREEN_ROUTE_REGEX.test(url)) {
goToSelectFunctionCodes.call(self);
} else if (self.DISCIPLINE_SCREEN_ROUTE_REGEX.test(url)) {
goToSelectDiscipline.call(self);
} else {
goToSelectDesigneeType.call(self);
} else ...
这用于转到工作流程的下一步,它工作正常,但它的某些内容并不适合我。这是非常常见的,还是有更好的方法来做同样的事情?
答案 0 :(得分:1)
您可以在此处使用switch(true)
个用户身份。
switch(true) {
case self.DESIGNEE_TYPE_SCREEN_ROUTE_REGEX.test(url) :
goToSelectDesigneeType.call(self);
break;
case self.FUNCTION_CODES_SCREEN_ROUTE_REGEX.test(url) :
goToSelectFunctionCodes.call(self);
break;
case self.DISCIPLINE_SCREEN_ROUTE_REGEX.test(url) :
goToSelectDiscipline.call(self);
break;
default :
goToSelectDesigneeType.call(self);
}
只是我的观点,这更容易阅读。