Javascript TypeScript:使用扩展运算符设置Object.prototype

Javascript TypeScript:使用扩展运算符设置Object.prototype,javascript,typescript,Javascript,Typescript,使用spread操作符是一种简洁的方法,它可以组成一个由其他对象属性聚合而成的对象 但是,有没有简洁、高效的方法来使用spread操作符设置对象的原型 目前我有: const result = Object.assign(Object.create(EmailCampaign.prototype), properties) 。它将从数据库查询返回的属性传播到带有EmailCampaign原型的对象中。有没有办法用spread操作符设置对象原型 这是可能的: const result = Ob

使用spread操作符是一种简洁的方法,它可以组成一个由其他对象属性聚合而成的对象

但是,有没有简洁、高效的方法来使用spread操作符设置对象的原型

目前我有:

const result = Object.assign(Object.create(EmailCampaign.prototype), properties) 
。它将从数据库查询返回的属性传播到带有
EmailCampaign
原型的对象中。有没有办法用spread操作符设置对象原型

这是可能的:

const result = Object.setPrototypeOf({...properties}, EmailCampaign.prototype);

。然而,就性能而言,在实例化后设置对象的原型是不可取的。我在寻找另一种方法,如果有的话

使用
对象。分配
+
对象。创建
是正确且有效的解决方案。你应该用它。如果要使其更简洁,请使用结合了这两者的辅助函数

也就是说,对对象文本调用
Object.setPrototypeOf
并没有那么慢,因为该对象还没有在其他地方使用过

有没有办法用spread操作符设置对象原型

如果您想使用正式弃用的功能,可以在对象初始化器中使用:

const result = {__proto__: EmailCampaign.prototype, ...properties};
所以是的,这是可能的,但我绝对不会推荐它