2014-01-10 97 views
0

我怎么能执行一个JavaScript函数,这样的:执行功能串

cursor.continue(parameters) 

使用字符串识别功能名称,使用eval没有?像这样:

cursor.callMethod("continue", parameters); 

这可能吗?

+0

@MelanciaUK:我不认为这是问题的一个副本。 – Ian

+0

@我已经收回了我的投票。干杯。 – melancia

回答

7

是的,您可以使用方括号表示法。

cursor["continue"](parameters) 

cursor["continue"]是完全一样cursor.continue

0

是的,你可以调用函数像这样:

cursor["continue"](parameters); 
2

如果你是在callMethod控制和功能属于一个对象或全球性的,那么是的,这是可能的。

例如,如果目标函数是同一个对象的方法,其中callMethod是:

var cursor = { 
    callMethod: function(method, params) { 
     this[method].apply(this, params); 
    }, 
    continue: function() {} 
} 
cursor.callMethod("continue", [1, 2, 3]); 
+0

不幸的是,'cursor'是一个IndexedDB游标,所以techfoobar的解决方案更合适,但对于我的示例方法的文字实现肯定是+1。 – CodingIntrigue