代码之家  ›  专栏  ›  技术社区  ›  Andrey

按名称执行函数,将对象作为参数传递

  •  1
  • Andrey  · 技术社区  · 16 年前

    简单示例:

    var div = document.getElementById('myDiv')
    var func = "function_name" -- this function expects a DOM element passed, not id
    

    2 回复  |  直到 16 年前
        1
  •  5
  •   Pim Jager    16 年前

    永远不要使用eval,它的邪恶(只看一个字母的区别) 您可以简单地执行以下操作:

    var div = document.getElementById('myDiv');
    var result = window[function_name](div);
    

    这是可能的,因为函数是javascript中的第一类对象,所以你可以像使用任何其他变量一样访问它们。请注意,这也适用于需要字符串或任何参数的函数:

    var result = window[another_function_name]("string1", [1, "an array"]);
    
        2
  •  4
  •   friedo    16 年前

    您应该能够从顶层获取函数对象 window 例如。

    var name = "function_name";
    var func = window[name];
    func( blah );