当我使用out参数动态地将其名称作为字符串发送时,如何执行javascript函数

时间:2011-12-01 15:25:43

标签: javascript javascript-events

我想要执行javascript函数,该名称将动态地作为字符串出现。 ansd我不需要在执行函数时传递任何参数。

任何人都可以指导我如何实现这个目标吗?

此致 Kamesh

7 个答案:

答案 0 :(得分:1)

一种简单的方法

eval("SomeFunction()");

var funcName = "SomeFunction";
var func == window[funcName];
func();

答案 1 :(得分:0)

很危险,但您可以使用eval(method_name+"()")

答案 2 :(得分:0)

你在谈论'eval()'吗?

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.
}

您可以通过创建函数名数组,在数组中搜索所需的函数名,然后在数组中执行值来优化它。