我有一个对象:
const Foo = {
bar: function(baz) { ... }
}
我想做这样的事情:
let x = 'Foo';
let y = 'cookies';
x.bar(y);
我尝试使用 eval:eval(x + '.bar' + '(' + y + ')');
但它不起作用。
我不能使用窗口,这是无法在浏览器中运行的代码。欢迎提出任何建议。
最佳答案
您可以将 Foo
包装在另一个对象中,并使用括号表示法调用该函数。
const Foo = {
bar: function(baz) { console.log(baz); }
};
var object = { Foo },
x = 'Foo',
y = 'cookies';
object[x].bar(y);
关于javascript - 动态调用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824252/