动态调用javascript函数

时间:2014-08-28 06:35:03

标签: javascript jquery

我正在生成动态javascript,其中我创建了一些用于存储值的函数

function get[dynamicname](){
    return "some value";
}

我想在另一个函数中调用此方法来获取我创建的所有函数的值

我拥有用于​​在我调用的函数中创建函数的所有动态名称。

function getallfunctionvals(){
    for ( var i = 0; i < array.length; i++ ) {
        var s="get";
        var ss="()";
        console.log(s+array[i]+ss);
    }
}

这是我如何调用动态生成的函数,但在控制台中,我将函数名称作为字符串而不是其中的值

4 个答案:

答案 0 :(得分:0)

如果已定义的函数在全局范围内,则可以使用

window[s+array[i]]()

所以如果你有像getName这样的函数。它会做什么会打电话给

window["getName"]();

答案 1 :(得分:0)

你好看This帖子。

答案之一

如果您知道它可以使用它的全局功能:

var functPtr = window[func_name];
//functPtr()

否则用包含该函数的父对象替换window。

答案 2 :(得分:0)

你可以使用eval功能。例如

            var s = eval("function get(){}; gat();");

答案 3 :(得分:0)

首先:

function get[dynamicname](){
return "some value";
}

将生成错误:SyntaxError:意外的令牌[

由于javascript函数名和变量中不允许“[”。

但你可以这样做:

function getName () {console.log('Name')};
function getAge  () {console.log('Age')};

当你调用上述功能时,你可以这样做:

var s="get";
var thingToGet = "Name";
var ss="()";

eval(s + thingToGet + ss)

我是否回答了你的问题?