2014-01-10 146 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