javascript - 动态调用对象

标签 javascript object

我有一个对象:

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/

相关文章:

php - 与 PHP 函数等效的 Javascript 函数

javascript - 将所有类型的语言转换为一种语言以进行比较

javascript - 谷歌地图 v3 动态设置标记大小

Javascript 音频 API 可视化工具未显示在 Canvas 中

javascript - 在响应式日历中添加动态月份

javascript - 我想返回一个对象,但我得到一个字符串

javascript - 循环遍历数组对象

object - 如何在UML中表示共享对象?

java - 如何打印我的 Java 对象而不得到 "SomeType@2f92e0f4"?

javascript - Node.js 使用 Series 函数(模式?)实现流控制的意外结果