1

我想将一个大对象分配给一个新变量以减少它的名称,但是我有一个错误:"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'])
4

1 回答 1

1

使用关键字const创建一个常量,它不能被分配另一个值(比如在你的第二行)。

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

一种选择如下:

const projectMotivation = this.project.realEstateProjectMotivation;
projectMotivation.realEstateProjectFundReuse = omit(projectMotivation.realEstateProjectFundReuse, [this.fundReuseTypeChoose(), 'description'])
于 2017-07-14T14:31:51.427 回答