我想要执行javascript函数,该名称将动态地作为字符串出现。 ansd我不需要在执行函数时传递任何参数。
任何人都可以指导我如何实现这个目标吗?
此致 Kamesh
答案 0 :(得分:1)
一种简单的方法
eval("SomeFunction()");
或
var funcName = "SomeFunction";
var func == window[funcName];
func();
答案 1 :(得分:0)
很危险,但您可以使用eval(method_name+"()")
答案 2 :(得分:0)
var foo = "alert('bar')";
eval(foo);
希望这会有所帮助;
答案 3 :(得分:0)
function a() { console.log('yeah!'); } var funcName = 'a'; // get function name this[funcName]();
答案 4 :(得分:0)
如果该功能是全局的,您应该在浏览器中执行window[funcName]()
。
答案 5 :(得分:0)
使用eval
是可以想象的最糟糕的方式。不惜一切代价避免这种情况。
您可以像这样使用window[functionname]()
:
function myfunction() {
alert('test');
}
var functionname = 'myfunction';
window[functionname]();
这样你也可以选择添加参数
答案 6 :(得分:0)
也许更安全的方法是做这样的事情(这里只有伪代码):
function executer(functionName)
{
if (functionName === "blammo")
{
blammo();
}
else if (functionName === "kapow")
{
kapow();
}
else // unrecognized function name
{
// do something.
}
您可以为此使用switch语句(它似乎是一个更好的构造):
switch (functionName)
{
case "blammo":
blammo();
break;
case "kapow":
kapow();
break;
default:
// unrecognized function name.
}
您可以通过创建函数名数组,在数组中搜索所需的函数名,然后在数组中执行值来优化它。