函數的名稱存儲在另一個函數的值中,我需要使用另一個函數調用該函數。使用另一個函數的值調用函數
我需要調用彈出()函數
random() = 'popup()'
if ($.cookie('optin-page')) {
}
我試圖
if ($.cookie('optin-page')) {
window[random()];
}
函數的名稱存儲在另一個函數的值中,我需要使用另一個函數調用該函數。使用另一個函數的值調用函數
我需要調用彈出()函數
random() = 'popup()'
if ($.cookie('optin-page')) {
}
我試圖
if ($.cookie('optin-page')) {
window[random()];
}
不能賦值給一個函數調用的返回值。其中有=
的聲明的左側不能以()
結束。 (即代碼的第一行是錯誤)。
如果你想要把一個全球功能與一個名爲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
}
這可以讓你引入錯誤處理。
即時通訊對不起,我忘了說,該函數返回該值。它不是直接分配的。 – codingninja
他有正確的想法。該字符串必須是函數名稱,沒有括號,如下所示:window [「functionName」](arguments); – milestyle