如何调用名称在字符串中定义的函数?

这个问题在这里已经有了答案:

  • 当我的名字作为字符串29答案时如何执行JavaScript函数

  • 如果A是全局定义的,那么window["A"]() 。 但是,没有必要在javascript中这样做。 只需传递函数本身而不是名称:

    function foo() {...}
    
    // BAD
    function callFunc(someName) { window[someName]() }
    callFunc("foo")
    
    // GOOD
    function callFunc(someFunc) { someFunc() }
    callFunc(foo)
    

    喜欢这个:

    window[varName]()
    

    假设它在全球范围内

    如果你有

    function A() {}
    function B() {}
    

    那么你可以做

    function C(parm) {
      parm();
    }
    

    如果你用C(A)C(B)

    DEMO


    您可以将函数分配给对象的属性。 然后在你的执行函数中,通过给定传递给函数的参数的名称来引用属性。

    var myFuncs = {
       a: function(){
         alert("Hello");
       },
       b: function(){
         alert("Goodbye");
       }
    };
    
    function execute(name){
       myFuncs[name]();
    }
    
    execute("a");
    execute("b");
    

    工作示例 http://jsfiddle.net/ud6BS/

    链接地址: http://www.djcxy.com/p/94833.html

    上一篇: How to call a function whose name is defined in a string?

    下一篇: How do I trigger a function from a string?