javascript - 我将如何以编程方式调用对象方法?像 MyObject.XVariable(//一些函数)
问题描述
我有一个对象,它从 API 调用中获取输入来填充它。
let MyDog = {
Name: 'Dog',
}
let arrayFunctions;
fetchDogsFunctions(dogAPIUrl).then(res => {
//results is an array that has a list of functions the dog has, like //getStats(), or walkDog()
arrayFunctions = res;
})
现在我想映射数组结果并在我的狗身上调用函数,比如......
arrayFunctions.map(item => {
await MyDog.item(//Params)
})
我怎样才能做到这一点??
从文件设置 MyDog,然后根据数组函数,对于每个函数,它以编程方式填充对新函数的调用,例如 MyDog.item,其中 item 是名为“Walk()”的数组中的变量
解决方案
我假设您的数据可能是如何构建的。请看下面,您可能会了解如何使用“等待”动态调用函数
const MyDog = {
funA(a) { return Promise.resolve('Function A called with parameter ' + a) }
, funB(b) { return Promise.resolve('Function B called with parameter ' + b) }
}
const arrayFunctions = ['funA', 'funB']
Promise.all(arrayFunctions.map(async (item, i) =>
await MyDog[item](++i))
)
.then(console.log)
推荐阅读
- python - Django - 转换 datetime.date 元组
- ruby - 使用 ARGV 创建目录
- c++ - 为什么当我正确执行语法时我的代码输出 0
- objective-c - 使用 NSInputStream 从文件中读取数字
- r - 在 R 数据框中分组和粘贴重复的行(从长到宽)
- postgresql - 在 SQL 中使用两个时间戳列在“point-in_time”生成计数
- html - 图像不会使用 localhost 显示
- c++ - 如何从调试控制台中删除额外的细节?
- javascript - 如何在没有 nodeJs 的情况下在 javascript 文件中加载反应
- vue.js - 在运行时更改 Vuetify 2 中主题的主要文本颜色