这都是使用ecmascript 6;假设我有一个班级
class Hero {
constructor(id,name){
this.id=id;
this.name=name;
}
}
我想创建一个类的对象数组:
var HEROES = [
{ "id": 11, "name": "Mr. Nice" },
{ "id": 12, "name": "Narco" },
{ "id": 13, "name": "Bombasto" },
{ "id": 14, "name": "Celeritas" },
{ "id": 15, "name": "Magneta" },
{ "id": 16, "name": "RubberMan" },
{ "id": 17, "name": "Dynama" },
{ "id": 18, "name": "Dr IQ" },
{ "id": 19, "name": "Magma" },
{ "id": 20, "name": "Tornado" }
];
除了手动解析数组,然后对每个元素执行NewHero()之外,还有什么方法可以做到这一点吗?如果能够做一些类似HEROES[] = hero.jsonExport()
的事情,然后再做var = hero.jsonImport(HEROES[i])
,那就太好了。我一直在四处寻找,但如果不使用Typescript,这似乎并不特别容易。我是不是错过了一些简单的东西?谢谢-Eric
想要从特定的数组实例导入似乎很奇怪,尤其是考虑到顺序可能会更改。可能最好导出一个工厂函数,该函数根据以下标准创建new Hero
:
class Hero {
constructor(id,name){
this.id=id;
this.name=name;
}
}
const HEROES = [
{ "id": 11, "name": "Mr. Nice" },
{ "id": 12, "name": "Narco" },
{ "id": 13, "name": "Bombasto" },
{ "id": 14, "name": "Celeritas" },
{ "id": 15, "name": "Magneta" },
{ "id": 16, "name": "RubberMan" },
{ "id": 17, "name": "Dynama" },
{ "id": 18, "name": "Dr IQ" },
{ "id": 19, "name": "Magma" },
{ "id": 20, "name": "Tornado" }
];
export default function createHero(index) {
const hero = HEROES[index];
return new Hero(hero.id,hero.name);
}
来电者:
import createHero from "./hero";
const hero1 = createHero(1);