javascript - 执行对象的函数/方法

标签 javascript function object

有没有办法让这样的东西在 JS 中工作:

function iterateObject(obj, f) {
    for (let prop in obj) {
        if (obj.hasOwnProperty(prop)) f(prop);
    }
}

然后将它应用到一个对象上:

let x = {a : function() {
    // do smth
}};

iterateObject(x, (prop) => {
    prop.a();
}

我收到一个错误提示 prop.a() 不是一个函数,但是如果我调用 x.a() 就没有问题。不是特别重要,但我只是想知道,找不到答案。

最佳答案

在调用 iterateObject 时,在匿名函数内,prop 是字符串 "a"。此外,x 是您的原始对象。

要通过对象 (x) 的名称 (prop) 访问属性,您必须执行 x[prop]。要调用该函数,您应该在匿名函数中编写 x[prop]()

关于javascript - 执行对象的函数/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447461/

相关文章:

javascript - 如何使用下划线js从对象数组中查找字符串?

c++ - 检查派生中基类的模板参数

javascript - 如何使用 JavaScript 在 HTML DOM 对象数组中通过数据选择器查找元素?

Python - 字典 - 最大值和根据键与函数和 for 循环

javascript - JavaScript初学函数问题

javascript - 检查对象属性值是否为 false

javascript - 如何在一个字符串中使用 lodash 过滤器和映射

java - 是否可以打印静态方法?

javascript - jQuery : Find elements inside HEAD tag from a variable

javascript - Angularjs,每次值递增时隐藏一个按钮