Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用变量值作为函数名_Javascript - Fatal编程技术网

Javascript 使用变量值作为函数名

Javascript 使用变量值作为函数名,javascript,Javascript,下面的代码用于对给定列表中每个DOM元素的类列表执行操作 function editClassListOfElements(elements, className, operation) { switch (operation) { case "add": [].forEach.call(elements, function (element) {element.classList.add(className)}); bre

下面的代码用于对给定列表中每个DOM元素的类列表执行操作

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)});
}

如果这是可能的,怎么做?

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


element.classList.add
相当于
element.classList[“add”]
。因此,您只需执行
element.classList[operation](className)
,它将调用
classList
的函数,命名方式与变量
operation

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

element.classList.add
相当于
element.classList[“add”]
。因此,您只需执行
element.classList[operation](className)
,它将调用
classList
的函数,该函数的名称与变量
operation的值类似