Javascript - 根据变量调用函数名称

标签 javascript function dynamic call eval

我正在尝试调用一个函数,其名称在代码中的其他地方定义。

下面是示例代码:

Inner.testFunc = function(node) { 
 var functionName = node.substring(node, to.indexOf('@'));
 // call the function based on functionName
 [functionName + '()']
}

function something() {
 //doing something
};

...

假设functionName = some,这应该尝试调用该函数,但它没有这样做。

我尝试使用其他链接,例如 Call javascript function which name is in variable但这没有帮助。

我也尝试过使用 eval():

eval(functionName + '()');

但这返回了一些关于非法字符的信息...

最佳答案

您的 eval 调用可能无法正常工作;使用:

eval(functionName)(); //note () after the eval statement

在您的代码中,首先确保 functionNamesomething

console.log(functionName === 'something')//true

关于Javascript - 根据变量调用函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286918/

相关文章:

javascript - 侧边栏的切换按钮

javascript - 如何在 JS 或 jQuery 中增加数字?

jquery - 如果 jquery 中的类名更改,则删除函数

android - 从动态 View 中识别按钮

php - 使用下拉菜单动态过滤 Wordpress 帖子(使用 php 和 ajax)

JavaScript 搜索表单

javascript - 在 Visual Studio 中使用 javascript

c++ - 在函数中填充由 new 生成的字符串

JavaScript 函数返回 NaN

javascript - 如何动态循环 json 字符串中的所有值