我有一个对象作为data
附加到DIV。我也有一个字符串,其中包含该对象的函数的名称。在不使用eval的情况下调用函数?
function callFunction(divId, funcName, data) {
o = $(divId).data('myObject');
// how do I call o.funcName(data) ???
// Somewhere else...
callFunction('#myDivId', "myFunction", someData);
的divId
和funcName
实际上是从网页上的Java小程序,这就是为什么他们是字符串的到来。
您必须使用eval()将字符串转换为对象,否则它只是一个字符串。但要注意围绕使用eval() – cusimar9 2011-05-17 14:26:55
的安全问题我想你想'o [funcName](data)'。 – pimvdb 2011-05-17 14:28:05
可能重复[如何执行一个JavaScript函数,当我有它的名字作为字符串](http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have - 将它命名为字符串) – outis 2012-04-25 01:21:25