簡體   English   中英

我們可以向JavaScript中的不可變對象添加屬性嗎?

[英]Can we add properties to immutable object in JavaScript?

一個對象就像:

const obj = [{name: 'Alex', age: 20}, {name: 'James', age: 22}];

該對象從Immutable.js是不可變的。

是否可以為每個對象添加一個新密鑰? 例:

const obj = [{name: 'Alex', age: 20, city: 'New York'}, {name: 'James', age: 20, city: 'Rome'}];

並非一成不變。 但這沒關系,您可以將所有屬性復制到新結構中,並以這種方式添加所需的內容:

const newData = obj.map(person => ({
  ...person,
  city: someLogicToDetermineCity(person)
}))

function someLogicToDetermineCity(person) {
  // logic based on person
  return city
}

const不會創建不變性-只是意味着創建后分配給它的引用以后不能更改(這僅意味着您不能為其分配新值)。

請參閱以下示例:

 const a = {} a = { name: "peter" } // => TypeError: invalid assignment to const `a' 

但是它沒有對分配財產問題a

 const a = {} a.name = "peter" console.log(a); // => { "name": "peter" } 

Array對象也是如此:

 const arr = [{}] arr.push(1); arr[0].name="peter" console.log(arr); // [ // { // "name": "peter" // }, // 1 // ] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM