一段代码中,有很多的if else怎么去优化这个代码
var sayHello = function( personal ){
if ( personal instanceof Li ){
console.log( '嘿,你好' );
}else if ( personal instanceof Dan ){
console.log( '吃早饭了么' );
}else if (personal instanceof Arthur){
console.log('你今天看起来真漂亮')
}
};
var Li = function(){};
var Dan = function(){};
var Arthur = function(){};
sayHello( new Li() ); // 嘿,你好
sayHello( new Dan() ); // 吃早饭了么
sayHello( new Arthur() ); // 你今天看起来真漂亮
关于 JavaScript 中 if else 的问题可以参考吾辈的 JavaScript 避免使用 if-else 的方法
主要的思路是利用 策略模式 + 工厂函数 实现 状态机
这里也推荐一下吾辈的工具库 rx-util,里面实现了一个简单的 无限状态机 StateMachine
你的代码改造如下