重构我的Javascript IF语句

时间:2017-10-04 06:36:48

标签: javascript refactoring conditional

我得到了一些非常难看的代码,我需要重构&我不确定解决问题的最佳方法。对我来说,它的工作原理我应该&每当我尝试改变它时,它似乎都会引入一个错误。

任何想法都会很棒。

  if (product) {
    if (product.available) {
      $addToCart.removeClass('disabled').prop('disabled', false);

      if (lang_key_change) {
        $addToCartText.html(lang_key_change);
      } else {
        $addToCartText.html({{ 'add_to_cart'}});
      }

    } else {
      $addToCart.addClass('disabled').prop('disabled', true);
      $addToCartText.html({{ 'sold_out'}});
    }

  } else {
    $addToCart.addClass('disabled').prop('disabled', true);
    $addToCartText.html({{ 'unavailable'}});
  }

2 个答案:

答案 0 :(得分:0)

使用以下重构代码

    $addToCart.addClass('disabled').prop('disabled', true);
if (product && product.available) {   
    $addToCart.removeClass('disabled').prop('disabled', false);
    $addToCartText.html(lang_key_change? lang_key_change: {{ 'add_to_cart'}});
}
else if (product && product.available === false) {     
    $addToCartText.html({{ 'sold_out'}});
}
else {   
    $addToCartText.html({{ 'unavailable'}});
}

答案 1 :(得分:0)

您可能不需要任何if声明,请点击此处

 $addToCart.toggleClass('disabled', !product || ( product && !product.available ) );
 $addToCart.prop('disabled', !product || ( product && !product.available ) );
 $addToCartText.html( !product ? {{ 'unavailable'}} : ( !product.available ? {{ 'sold_out'}} : ( lang_key_change || {{ 'add_to_cart'}} ) )  );