在JS中有没有一种方法可以使用spread操作符或类似的方法来复制所有非函数属性?这显然不会做到(因为它会复制函数引用):
getSerializableData(): Partial<this> {
return {
...this,
subscribers: undefined,
subscribersByEvent: undefined,
}
}
在伪代码中,它将是:
getSerializableData(): Partial<this> {
return {
...Object.serializableFields(this), // <<< here
subscribers: undefined,
subscribersByEvent: undefined,
}
}
因此扩展算子只作用于非函数属性等。这可能吗?
1条答案
按热度按时间j5fpnvbx1#
您可以按值类型筛选条目,然后使用reduce函数将对象压缩回去。
正如Bergi所建议的,可以使用
Object.fromEntries
压缩对象。