使用另一个函数的值调用函数

时间:2013-07-29 20:36:39

标签: javascript jquery html css

函数的名称存储在另一个函数的值中,我需要使用另一个函数调用该函数。

我需要调用popup()函数

random() = 'popup()'

if ($.cookie('optin-page')) {

} 

我试过

if ($.cookie('optin-page')) {
    window[random()];
}

2 个答案:

答案 0 :(得分:6)

您无法为函数调用的返回值赋值。其中包含=的语句的左侧不能以()结尾。 (即代码的第一行是错误的。)

如果要调用全局函数,其名称与名为random的函数的返回值匹配,则可以:

window[random()]();

...但是当你考虑这样做时,你应该将这些函数存储在一个对象中,然后将它们作为该对象的方法来调用:

var foo = { 
    a: function () { 
        alert('e.g.'); 
    } 
};
function picker() { 
    return "a";
}
foo[picker()]();

答案 1 :(得分:0)

我认为你用开关或其他东西会更好,而不仅仅是调用你得到的任何字符串......

var functionToCall = random();

switch(functionToCall)
{
case 'popup()':
    popup();
    break;
case 'function2()':
    function2();
    break;
default:
    // throw an error INVALID FUNCTION CALLED
}

这允许您引入错误处理。