javascript - 当 JavaScript 函数的名称作为字符串传递到函数中时,如何执行该函数?

标签 javascript jquery function hide show

如何使用作为参数传递的函数名称。

示例:

showError('container', 'id', '- message', 'show');
showError('container', 'id', '', 'hide');


function showError(container, id, msg, action)
{    
    if(action == 'show') {  
        $('#' + container).show();       
        $('#' + id).html(msg).show();
    }
    else {  
        $('#' + container).hide();       
        $('#' + id).html(msg).hide();
    }

}

最佳答案

obj.foo() 确实是一个两步的事情。 obj.foo 返回一个函数对象,然后 () 执行它。 obj['foo'] 返回相同的函数对象,因此添加一个 () 来执行它。

因为 obj['foo']obj.foo 相同。即使该属性的值是一个函数。因此,您始终可以使用 [] 访问器访问任何属性,并使用字符串作为键名称。

$('#' + container)[action]();

关于javascript - 当 JavaScript 函数的名称作为字符串传递到函数中时,如何执行该函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764988/

相关文章:

javascript - 设置图表中 X 轴间隔的格式 - Kendo UI

javascript - 应单击 1 次而不是 2 次单击才能在屏幕上显示动画

javascript - MVC 5 中的图像 slider

javascript - setInterval 显示/隐藏类的特定实例

jquery - 我正在尝试 .load() 只有 1 个 div 但所有内容都已加载

iOS - 方法(在另一个类中)执行了两次

c# - 为什么我不能将此对象作为参数传递?

javascript - D3 事件监听器返回 MouseEvent 而不是数据

php - 拿绳子,在最后一针之前

jquery - 如何在 Td 中将启用更改为禁用?