我剛剛問了一下名字調用函數,現在我要處理return
語句後SetTimeout
:獲取返回值之後的setTimeout
function ECall(funcName, arg)
{
command += "(";
for (var i=1; i<arguments.length; i++)
{
command += "'" + arguments[i] + "'";
if (i != arguments.length-1) command += ',';
}
command += ")";
//var funcPtr = eval(funcName);
//return funcPtr(arg); // This works, but I need SetTimeout
setTimeout('window[\'' + funcName + '\']' + command, 1000);
}
setTimeout
的偉大工程,但我必須節省調用函數的返回值。當我寫:setTimeout('alert(window[\'' + funcName + '\']' + command + ')', 1000);
它提醒函數的返回值。我如何存儲它?
功能的變量?有沒有辦法做到這一點? – Ockonal 2011-03-06 15:01:15
@Ockonal:我在答案中使用了一個警告,但是@Tim Down在他的回答中顯示了相同的概念(http://stackoverflow.com/questions/5211103/get-return-value-after-settimeout/5211190# 5211190),但將結果存儲在預先定義的變量中(這是您似乎想要的)。該值直到'setTimeout'運行纔會可用。 – user113716 2011-03-06 15:03:16