有没有办法让这样的东西在 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/