目前我有这样的简单 JavaScript 类:
function MyClass() {
// ... some code ...
this.Create = function() {
funcName = 'myTestFunc()';
cTimer = setTimeout(funcName, 1000);
}
// ... more code ...
var myTestFunc = function() {
alert ('everything\'s OK!');
}
// ... more code ...
}
为了测试它,我正在使用以下代码:
x = new MyClass();
x.Create();
我在按其名称执行此功能时遇到了一些麻烦。如果我只是eval(funcName);
而不是 setTimeout 调用它可以正常工作,但无法弄清楚为什么它不能以这种方式工作。
当然,这是更复杂代码的一部分,但其余代码与此问题无关。
我的问题很明显 - 如何通过将函数的名称设置为setTimeout
函数的参数来执行函数?可能吗?
注意:将此功能设为公开 ( this.myTestFunc = ...
) 不是一种选择!
更新:
funcName = "myTestFunc()";
只是一个例子。在实际代码中它看起来像funcName = getRandomEffectFunctionName();
!这只是一个随机值。