使用字符串调用方法

时间:2015-09-26 13:31:21

标签: javascript

我有一个像这样的对象:

var x = {
    "fx": function() {...}
}

我有对象的名称(y = "x")和函数(z = "fx")并将它们作为字符串。

我知道我可以通过以下方法或类似方法使用eval调用该函数:

eval(y.z)

但是,我想避免使用eval来完成此任务。我知道apply原型方法接受一个函数并将其应用于一个对象,但是由于函数包含在对象中,因此无法搜索函数引用。

我知道这个问题不是一个新问题,因此必须有一个解决方案,但我找不到它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用

 x[y]()

用变量

调用函数

答案 1 :(得分:0)

我所理解的是y和z是一些变量,你想用这些变量调用y对象的z方法。

可以通过各种方式实现。例如:

(function () {
x = {
    "fx": function () {
        alert("Hey!");
    }
}
    y = "x";
    z = "fx";
    this[y][z]();
}());

DemoFiddle