我将如何以编程方式调用对象方法?像MyObject.XVariable(//一些功能)

时间:2018-11-13 07:41:51

标签: javascript arrays reactjs

我有一个对象,该对象从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()”的数组中的变量“

3 个答案:

答案 0 :(得分:0)

我假设您的数据可能如何组织。请在下面看一下,您可能会想到如何使用“等待”动态调用函数的想法

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)

答案 1 :(得分:0)

我的MyDog对象中看不到任何属性名称“ item”

答案 2 :(得分:0)

答案是要做的:

MyDog[item]()

在循环内。

我在询问执行此操作的正确语法