Хм, возможно, вы могли бы написать бесплатную функцию шаблона, которая обертывает ваши объекты-функции. Если все они имеют одну и ту же подпись, это должно работать. Как это (не проверено):
template<class T>
int function_wrapper(int a, int b) {
T function_object_instance;
return funcion_object_instance( a, b );
}
Это будет делать для всех функций, которые принимают два int и возвращают int.
Потому что вы перебираете ключи объекта. Чтобы вернуть объект в вашем случае, вы должны использовать данный ключ, чтобы получить его значение:
render() {
//this.props.phone contains the objects "Samsung", "iPhone", and "Google"
return (
Object.keys(this.props.phones).map((type) => {
console.log(this.props.phones[type])
...
})
)
}