我有一个动物对象,看起来像这样:
AnimalObject {attributes: {…}, locations: {…}}
动物对象类:
export default class AnimalObject {
constructor(apiResult, included) {
this.attributes = apiResult.attributes;
this.locations = apiResult.locations;
...
}
我现在有一个名为FishObject的特定AnimalObject,它具有一些与鱼类相关的方法。
export default class FishObject extends AnimalObject {
getFood(){
const foods = this.getFishFood(this.attributes)
return foods
}
talk(){
return "blub"
}
}
javascript中是否可以将动物对象列表[{AnimalObject}, {AnimalObject}]
转换为Fish对象?我想通过AnimalObject列表进行映射并调用fish方法。
-更新:我最有可能实例化Fish类...
答案 0 :(得分:0)
您可以使用Object.assign()
方法进行处理。
如果您将其包装如下:
function castToFish(animalObject) {
return Object.assign(new FishObject(), animalObject)
}
然后您可以使用map
转换数组:
var fishArray = [...someAnimalObjects].map(castToFish)
当然,我假设您可以使用es6语法。