使用变量值作为函数名称

时间:2016-09-12 07:33:20

标签: javascript

我有以下代码对给定列表中每个DOM-Element的classList执行操作。

function editClassListOfElements(elements, className, operation) {
    switch (operation) {
        case "add":
            [].forEach.call(elements, function (element) {element.classList.add(className)});
            break;
        case "remove":
            [].forEach.call(elements, function (element) {element.classList.remove(className)});
            break;
        case "toggle":
            [].forEach.call(elements, function (element) {element.classList.toggle(className)});
            break;
        default:
            break;
    }
}

我希望将其更改为:

function editClassListOfElements(elements, className, operation) {
    [].forEach.call(elements, function (element) {element.classList. + operation + (className)});
}

如果可以的话,怎么做?

1 个答案:

答案 0 :(得分:3)

您可以使用括号访问对象的字段。

element.classList.add相当于element.classList["add"]。所以你可以element.classList[operation](className)来调用classList的函数,其名称类似于变量operation的值。