这个问题已经以不同的方式存在,但我的代码大多不同,所以我没有从其他答案中得到解决方案。这是一个示例代码:
http://jsfiddle.net/e52n28xs/
我想要启动这样的功能:
var test1 = {
start: function() { }
};
var fn = 'test1';
fn.start();
我知道以下工作,但我需要字符串选项。
test1.start();
也许那不可能?
答案 0 :(得分:0)
答案 1 :(得分:-2)
根据您运行此功能的this
的值,其中任何一个都可以使用:
window['test1'].start();
或者
this['test1'].start();
显然,您可以对函数名称本身执行相同的操作,例如:
test1['start']();
或
this['test1']['start']();
// same as: var test1 = this['test1']; test1['start']();
如果你想让整个事情成为字符串,那么:
eval('test1.start()');
如果您使用的是var
,那么这也会有效,在之前的字符串版本中,您必须有一个容器对象可供查询。