gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:25 25 4
gpt4 key购买 nike

使用展开运算符是一种简洁的方式来组合由其他对象属性的集合组成的对象。

但是有没有简洁高效的方法来使用扩展运算符设置对象的原型(prototype)?

目前我有:

const result = Object.assign(Object.create(EmailCampaign.prototype), properties) 

. . .它将从数据库查询返回的属性传播到具有 EmailCampaign 原型(prototype)的对象中。有没有办法用扩展运算符设置对象原型(prototype)?

这是可能的:

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

. .然而,就性能而言,在实例化后设置对象的原型(prototype)是不可取的。我正在寻找另一种方式,如果存在的话。

最佳答案

使用 Object.assign+Object.create 是正确且高效的解决方案。你应该使用它。如果你想让它更简洁,使用一个结合了两者的辅助函数。

也就是说,在对象文字上调用 Object.setPrototypeOf 并不慢,因为该对象尚未在其他地方使用。

Is there a way to set the object prototype with the spread operator?

好吧,如果你想使用官方弃用的功能,你可以使用 __proto__ property在对象初始化器中:

const result = {__proto__: EmailCampaign.prototype, ...properties};

所以是的,这是可能的,但我绝对不会推荐它。

关于javascript - TypeScript:使用扩展运算符设置 Object.prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49111307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com