通过存储在字符串中的名称调用 JavaScript 函数
在某些情况下,您可能会遇到函数名称为一个字符串并需要执行它。为此,请按照以下步骤操作:
方法 1:对于平面函数
对于不属于命名空间的函数,请使用以下语法:
window["functionName"](arguments);
方法 2:对于命名空间函数
对于命名空间内的函数,需要使用以下语法:
var namespaces = functionName.split("."); var func = namespaces.pop(); for (var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } context[func].apply(context, args);
方法 3:使用便捷函数
到简化流程,您可以利用以下便利函数:
function executeFunctionByName(functionName, context /*, args */) { var args = Array.prototype.slice.call(arguments, 2); var namespaces = functionName.split("."); var func = namespaces.pop(); for(var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func].apply(context, args); }
调用函数
要使用任何方法调用函数,请指定函数名称和上下文,如下所示:
executeFunctionByName("My.Namespace.functionName", window, arguments);
以上是如何使用存储为字符串的名称来调用 JavaScript 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!