在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新手。 感谢
答案 0 :(得分:4)
如果我正确理解你的问题,你应该只能说:
functions[name](array);
而不是$.each()
循环。
答案 1 :(得分:0)
试试这个:
value.apply(this, [array])
答案 2 :(得分:0)
就您提供的信息而言,您无法从类方法访问尚未在范围内的参数。在您的示例拼写更正
//'array' is undefined / out of scope
this.doSomething = function(name,array){
//array is defined / in scope!
};
否则,如果你所谈论的变量数组是在某个范围内定义的,那么第一个答案就可以了。