函数的名称存储在另一个函数的值中,我需要使用另一个函数调用该函数。
我需要调用 popup() 函数
random() = 'popup()'
if ($.cookie('optin-page')) {
}
我试过了
if ($.cookie('optin-page')) {
window[random()];
}
函数的名称存储在另一个函数的值中,我需要使用另一个函数调用该函数。
我需要调用 popup() 函数
random() = 'popup()'
if ($.cookie('optin-page')) {
}
我试过了
if ($.cookie('optin-page')) {
window[random()];
}
您不能为函数调用的返回值赋值。带有 in 的语句的左侧=
不能以 结尾()
。(即您的代码的第一行是一个错误)。
如果你想调用一个名称与被调用函数的返回值匹配的全局random
函数,那么你可以:
window[random()]();
…但是任何时候你考虑这样做,你可能应该将这些函数存储在一个对象中,然后将它们作为该对象的方法调用:
var foo = {
a: function () {
alert('e.g.');
}
};
function picker() {
return "a";
}
foo[picker()]();
我认为你最好使用开关或其他东西,而不是仅仅调用你得到的任何字符串......
var functionToCall = random();
switch(functionToCall)
{
case 'popup()':
popup();
break;
case 'function2()':
function2();
break;
default:
// throw an error INVALID FUNCTION CALLED
}
这允许您引入错误处理。