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

时间:2017-07-14 14:13:43

标签: javascript object clone use-strict

我想将一个大对象分配给一个新变量以减少其名称,但我有一个错误:"realEstateProjectFundReuse" is read-only

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'])

1 个答案:

答案 0 :(得分:1)

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

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

一个选项如下:

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