public static copyThisOfSonClass(item: ItemInfo): ItemInfo { let construClassName = egret.getQualifiedClassName(item); let obj = new window[construClassName]; for (var key in item) { if (item.hasOwnProperty(key)) { if (key == "__class__" || key == "__types__") continue; var element = item[key]; obj[key] = element; } } return obj; }
1、通过 egret.getQualifiedClassName 反射某个实例的类名。
2、通过 new window[反射拿到的类名] 来创建一个新的类实例。
3、最后将 item 实例的值赋值给 新实例。