重构我的Javascript IF语句
我得到了一些非常难看的代码,我需要重构&我不确定解决这个问题的最佳方法。对我来说,这是我应该做的&每次我试图改变它,它似乎都会引入一个bug 任何想法都很好重构我的Javascript IF语句,javascript,refactoring,conditional,Javascript,Refactoring,Conditional,我得到了一些非常难看的代码,我需要重构&我不确定解决这个问题的最佳方法。对我来说,这是我应该做的&每次我试图改变它,它似乎都会引入一个bug 任何想法都很好 if (product) { if (product.available) { $addToCart.removeClass('disabled').prop('disabled', false); if (lang_key_change) { $addToCartText.html(l
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'}});
}
使用下面的重构代码
$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'}});
}
您可能不需要任何
如果语句,请检查此处
$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'}} ) ) );
非常感谢,这太完美了。多干净啊