一段代码中,有很多的ifelse怎么去优化这个代码varsayHello=function(personal){if(personalinstanceofLi){console.log('嘿,你好');}elseif(personalinstanceofDan){console.log('吃早饭了么');}elseif(personalinstanceofArthur){console.log('你今天看起来真漂亮')}};varLi=function(){};varDan=function(){};varArthur=function(){};sayHello(newLi());//嘿,你好sayHello(newDan());//吃早饭了么sayHello(newArthur());//你今天看起来真漂亮
2 回答
慕斯王
TA贡献1864条经验 获得超2个赞
关于JavaScript中ifelse的问题可以参考吾辈的JavaScript避免使用if-else的方法主要的思路是利用策略模式+工厂函数实现状态机这里也推荐一下吾辈的工具库rx-util,里面实现了一个简单的无限状态机StateMachine你的代码改造如下import{StateMachine}from'./StateMachine'conststateMachine=StateMachine.getFactory()classIBase{hello(){}}stateMachine.register(1,classLiextendsIBase{hello(){return'嘿,你好'}})stateMachine.register(2,classDanextendsIBase{hello(){return'吃早饭了么'}})stateMachine.register(3,classArthurextendsIBase{hello(){return'你今天看起来真漂亮'}})varsayHello=function(personal){console.log(personal.hello())}sayHello(stateMachine.getInstance(1))//嘿,你好sayHello(stateMachine.getInstance(2))//吃早饭了么sayHello(stateMachine.getInstance(3))//你今天看起来真漂亮
添加回答
举报
0/150
提交
取消