微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用扩展语法向对象添加属性就地

如何解决使用扩展语法向对象添加属性就地

对象扩展语法允许将一个对象文字与另一个对象合并,如

const additional_object = { c:3,d:4 };
const object = { a:1,b:2,...additional_object }; // object = { a:1,c:3,d:4 }

但是,我找不到如何使用扩展语法来增加具有新属性的现有对象,而无需创建新对象。反弹上一个例子,我想写:

const yet_another_object = { e:5,f:6 };
some_Syntax_involving_object_here = {...yet_another_object };
// expected result: object = { a:1,d:4,e:5,f:6 }

从 2 个对象 (const new_objet = { ...object,...yet_another_object }) 中创建一个新对象很容易,但这不是我需要的const 对 {{1} 的引用} 必须保持,并且 object 必须获得其附加属性。请注意,object 可用于执行此操作,但我认为扩展语法可以以更易读的方式执行相同的操作。

解决方法

There is no spread operator.

有传播语法。重要的区别是运算符可用于任何表达式。语法仅在特定上下文中有效。

Object spread syntax 特别是仅在 an object initialiser 内有效。这意味着您只能在创建新对象时使用它。因此,您不能通过传播来修改对象。

,

Object.assign(originalObject,newObject) 正是您要找的。它将新对象的属性合并到现有对象中,从而保存引用。

,

这在 javascript 中是不可能的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。