Javascript - 将大对象分配(而不是克隆)到新变量以减少其名称

标签 javascript object clone use-strict

我想将一个大对象分配给一个新变量以减少其名称,但出现错误:“realEstateProjectFundReuse”是只读的

const realEstateProjectFundReuse = this.project.realEstateProjectMotivation.realEstateProjectFundReuse
    realEstateProjectFundReuse = omit(realEstateProjectFundReuse, [this.fundReuseTypeChoose(), 'description'])

但是这个语法有效

const realEstateProjectFundReuse = this.project.realEstateProjectMotivation.realEstateProjectFundReuse
this.project.realEstateProjectMotivation.realEstateProjectFundReuse = omit(realEstateProjectFundReuse, [this.fundReuseTypeChoose(), 'description'])

最佳答案

使用关键字 const 您可以创建一个常量,该常量不能被分配另一个值(如第二行中所示)。

但即使您使用 let 定义变量,将其设置为新值也不会更改原始对象。原因是 omit 创建了一个新对象。然后,realEstateProjectFundReuse 将指向新创建的对象,而 this.project.realEstateProjectMotivation.realEstateProjectFundReuse 仍指向旧对象。

一种选择如下:

const projectMotivation = this.project.realEstateProjectMotivation;
projectMotivation.realEstateProjectFundReuse = omit(projectMotivation.realEstateProjectFundReuse, [this.fundReuseTypeChoose(), 'description'])

关于Javascript - 将大对象分配(而不是克隆)到新变量以减少其名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45105143/

相关文章:

javascript - Chrome 扩展内容脚本之间的 postMessage 安全性如何?可能的替代方案?

javascript - 在 ASP.NET 文本框中使用 javascript

javascript - 如何干净地处理 nextjs getStaticProps 中的错误

c# - 如何将级联样式表加载到 C# 对象中?

javascript - 如何从数组中多次随机选择一个对象并将每个对象存储在数组中?

amazon-web-services - 为什么当我尝试克隆装有 Node-RED 的计算机时,我会丢失所做的所有图形配置(Ubuntu Amazon Server)?

javascript - TypeError : authService. isAuthenticated 不是一个函数

javascript - 括号表示法是用引号访问对象

jquery - 在 DOM 外部使用 jQuery 克隆

java - 有什么理由更喜欢 System.arraycopy() 而不是 clone()?