执行函数为字符串

时间:2014-01-10 13:26:43

标签: javascript

如何执行这样的Javascript函数:

cursor.continue(parameters)

使用字符串标识函数名称,不使用使用eval?像这样:

cursor.callMethod("continue", parameters);

这可能吗?

3 个答案:

答案 0 :(得分:7)

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

cursor["continue"](parameters)

cursor["continue"]cursor.continue完全相同。

答案 1 :(得分:2)

如果您控制callMethod,并且该函数属于某个对象或属于全局,那么是的,这是可能的。

例如,如果目标函数是callMethod所在的同一对象的方法:

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

答案 2 :(得分:0)

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

cursor["continue"](parameters);