[英]TypeScript: Set Object.prototype with spread operator
使用散布运算符是一种精简的方式来构成一个由其他对象属性的集合组成的对象。
但是,是否有使用精简高效的方法使用传播算子设置对象原型的方法?
目前我有:
const result = Object.assign(Object.create(EmailCampaign.prototype), properties)
。 。 。 这EmailCampaign
数据库查询返回的属性传播到使用EmailCampaign
原型的对象中。 有没有一种方法可以使用传播算子设置对象原型?
这将是可能的:
const result = Object.setPrototypeOf({...properties}, EmailCampaign.prototype);
。 。 但是,在性能方面,不建议在实例化后设置对象的原型。 我正在寻找另一种方式(如果存在)。
使用Object.assign
+ Object.create
是正确且Object.create
的解决方案。 您应该使用它。 如果要使其更简洁,请使用结合了两者的帮助器功能。
这就是说,调用Object.setPrototypeOf
对象文本上不慢 ,因为对象尚未在其他地方使用。
有没有一种方法可以使用传播算子设置对象原型?
好吧,如果要使用正式弃用的功能,可以在对象初始化器中使用__proto__
属性 :
const result = {__proto__: EmailCampaign.prototype, ...properties};
是的,这是可能的,但我绝对不会推荐它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.