将 if/else 组合成一条语句? (Javascript)

Combine if/else into one statement? (Javascript)

function changeButton () {
    if (event.currentTarget.className == 'btnRed') {
        event.currentTarget.className = 'btnGreen';
    } else {
        event.currentTarget.className = 'btnRed';
    }
}

假设我有上面的代码。我见过将这两者结合起来的类似代码,但我真的不记得它是如何做到的。有点像 className = (btnGreen | btnRed).
很抱歉这个问题含糊不清。

你可以使用三元运算符(condition) ? (true) : (false)

event.currentTarget.className = event.currentTarget.className == 'btnRed' ? 'btnGreen' : 'btnRed';

我会更进一步,将字符串提取到变量中,以消除在整个解决方案中错误键入它们的能力。并将event.currentTarget重构为变量

var RED_BUTTON_CLASS = 'btnRed', 
    GREEN_BUTTON_CLASS = 'btnGreen';

var currentTarget = event.currentTarget;

currentTarget.className = currentTarget.className == RED_BUTTON_CLASS ? GREEN_BUTTON_CLASS : RED_BUTTON_CLASS;

我觉得这只会让长运行更容易,完全可选

编辑

所以从 Jan 所说的内容中添加额外的信息。

var RED_BUTTON_CLASS = 'btnRed', 
    GREEN_BUTTON_CLASS = 'btnGreen';

这些可能描述了一种状态,因此您最好为它们命名:

var ERROR_BUTTON_CLASS = 'btnRed', 
    OK_BUTTON_CLASS = 'btnGreen';