Max*_*rai 5 javascript eval return function settimeout
我刚刚问过按名称调用函数,现在我想在以下处理return语句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);
}
Run Code Online (Sandbox Code Playgroud)
setTimeout效果很好,但我必须保存被调用函数的返回值.当我写:setTimeout('alert(window[\'' + funcName + '\']' + command + ')', 1000);
它警告函数的返回值.我该如何存放?
您不需要使用任何此字符串操作.只需传递一个函数引用即可window.setTimeout().要存储函数的返回值,只需将其分配给传递给函数的变量即可window.setTimeout()
var savedValue;
function ECall(funcName)
{
var args = Array.prototype.slice.call(arguments, 1);
var func = window[funcName];
window.setTimeout(function() {
savedValue = func.apply(this, args);
}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15244 次 |
| 最近记录: |