通过键JavaScript从关联数组中调用函数

Call a function from associative array by key JavaScript

本文关键字:数组 调用 函数 关联 JavaScript      更新时间:2023-09-26

在JavaScript中,我有这样的函数的关联数组(类似于类的静态字段):

functions={'name': function(){},'name':function(){}};

每个函数都对数组执行某些操作。我也有方法:

this.doSomethind= function(name, array){//class member

我需要调用其中一个函数,通过名称查找它。

$.each(functions, function(key, value) {
                 if(key == name)
                    //here I need to call function with array as paremeter. It seems value(array); doesn't work.
                        }); 
}

很抱歉,如果这是一个愚蠢的问题,我只是JavaScript新手。感谢

如果我正确理解您的问题,您应该能够说:

functions[name](array);

而不是$.each()循环。

试试这个:

value.apply(this, [array])

根据您提供的信息,您无法从类方法访问尚未在范围内的参数。在你的例子中拼写正确的

  //'array' is undefined / out of scope
  this.doSomething = function(name,array){
    //array is defined / in scope!
   };

否则,如果您所说的变量数组是在某个范围中定义的,那么第一个答案就会起作用。