0

関数の名前は別の関数の値に格納されており、他の関数を使用して関数を呼び出す必要があります。

popup() 関数を呼び出す必要があります

random() = 'popup()'

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

} 

私は試した

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

2 に答える 2

6

関数呼び出しの戻り値に値を代入することはできません。を含むステートメントの左側は、=で終わることはできません()。(つまり、コードの最初の行はエラーです)。

呼び出された関数の戻り値と一致する名前でグローバル関数を呼び出したい場合は、次のrandomことができます。

window[random()]();

…しかし、それを考えているときはいつでも、おそらくそれらの関数をオブジェクトに格納してから、そのオブジェクトのメソッドとして呼び出す必要があります。

var foo = { 
    a: function () { 
        alert('e.g.'); 
    } 
};
function picker() { 
    return "a";
}
foo[picker()]();
于 2013-07-29T20:39:37.277 に答える
0

返された文字列を呼び出すだけでなく、スイッチなどを使用したほうがよいと思います...

var functionToCall = random();

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

これにより、エラー処理を導入できます。

于 2013-07-29T20:48:18.073 に答える