尽量减少if else的使用---js面向对象

本文通过实例展示了如何减少if-else语句的使用,采用switch和对象映射的方法来提升代码的可读性和扩展性。

不管是刚刚会写代码的新手菜鸟,还是已经在代码界奋斗几年的老码农,

if else我想肯定是不会陌生的,而且肯定是用的不想再用了,

在这里我就分享一下怎么样可以减少if else的使用,使你的代码看上去就是有种高大上的感觉

先来一个最简单的例子,看代码

function foo(params){
  if(params == 'red'){
    console.log(1);
  }else if(params == 'black'){
    console.log(2);
  }else if(params == 'yellow'){
    console.log(3);
  }else{
    console.log(0);
  }
}

这个方法应该很好理解吧,表示三种颜色对应的三个值,

ok,这是最简单也是最容易看懂的,但是这样使得代码的维护性以延展性看上去并不是那么的友好,

说白了,其实就是low,

那么,问题来了,怎么样使得这个看似简单的逻辑能够看上去高大上一点呢?

首先,有童鞋可能会想到switch,没错,这也是一种方法,

function foo(params){
  switch(params){
    case 'red':
      console.log(1);
      break;
    case 'black':
      console.log(2);
      break;
    case 'yellow':
      console.log(3);
      break;
    default:
      console.log(0);
  }
}

这样看上去是比上面的if else要好维护多了,但是我们现在上升一个点来讲,这样的代码还是一般,

怎么说呢?打个比方说,

现在你就是个包工头,你要把手上的活分配给手下的伙计干,于是你需要一个个报名字,让那些伙计来领活儿干,看上去好像是没什么问题,

shuxing那么我们再上升一个点来说一下,我们可不可以不要报名字,直接让他们来拿任务呢?

ok,看下面的代码

function foo(params){
  var handle = {},
      handle['red'] = 1,
      handle['black'] = 2,
      handle['yellow'] = 3;
  console.log(handle[params] || 0);
}

我先定义好了三种颜色所对应的值,所以在取参数的时候,就可以直接按照属性来取值了,

那么,上面的想法,其实就是包工头先将活儿的名称定义好,手下的人直接按照自己的定位来领取活儿,

而且这中想法的最大特点就是扩展性很强,如果说要加一个分支,就是新增一个属性,

虽然我举得例子很简单,但是可以减少很多的if else的出现,使得我们的代码拥有更好的可读性,

希望这种想法能被大家应用吧,嘿嘿!!

转载于:https://my.oschina.net/codingBingo/blog/757696

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值