我有一个像这样的对象:
var x = {
"fx": function() {...}
}
我有对象的名称(y = "x"
)和函数(z = "fx"
)并将它们作为字符串。
我知道我可以通过以下方法或类似方法使用eval调用该函数:
eval(y.z)
但是,我想避免使用eval来完成此任务。我知道apply
原型方法接受一个函数并将其应用于一个对象,但是由于函数包含在对象中,因此无法搜索函数引用。
我知道这个问题不是一个新问题,因此必须有一个解决方案,但我找不到它。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用
x[y]()
用变量
调用函数答案 1 :(得分:0)
我所理解的是y和z是一些变量,你想用这些变量调用y对象的z方法。
可以通过各种方式实现。例如:
(function () {
x = {
"fx": function () {
alert("Hey!");
}
}
y = "x";
z = "fx";
this[y][z]();
}());