在javascript中动态构造类名是一种好做法吗

在javascript中动态构造类名是一种好做法吗,javascript,Javascript,我有一段代码与此类似: if (a == 'info') { $("#abc").addClass('abc-info'); } else if (a == 'warning') { $("#abc").addClass('abc-warning'); } 我得到一个建议,用如下内容替换上述代码: addClassToABC(a) function addClassToABC(type) { $("#abc").addClass('abc-' + type); }

我有一段代码与此类似:

if (a == 'info') {
    $("#abc").addClass('abc-info');
} else if (a == 'warning') {
    $("#abc").addClass('abc-warning');
}
我得到一个建议,用如下内容替换上述代码:

addClassToABC(a)

function addClassToABC(type) {
    $("#abc").addClass('abc-' + type);
}

但是像这样拆分类/id名称是一种好的做法吗?-“'abc'+类型”,因为我看到这可能会成为任何调试/重构此代码以定位特定类/id名称的人的噩梦。

似乎完全合理。毕竟这正是
$.fn.addClass
正在做的事情。小心——它们在功能上是不等价的。第一个代码段在调用
.addClass()
之前验证输入值是否为某个字符串,而第二个代码段不执行输入验证。创建动态类名一点也不奇怪,但它是否是给定用例的最佳解决方案显式取决于用例。至于你的“重构噩梦”参数,如果像第一个示例中那样在多个地方对某个字符串进行硬编码,那么查找该字符串的每次出现并在将来对其进行更新也将是一场噩梦。我同意你的看法,neha,调试将是未来的一个问题。