Object.assign(),函数方法和内存使用

Object.assign(), functional approaches and memory usage

本文关键字:内存 方法 函数 assign Object      更新时间:2023-09-26

如果我在Javascript(ES6)中这样做:

let originalState = [
    { id : 1, name : "One"},
    { id : 2, name : "Two"},
    { id : 3, name : "Three"}
]
let newState = Object.assign({}, ...originalState)

"newState"中的对象会引用内存中"orignalState"中对象吗?还是会被克隆,占用新内存?

"newState"中的对象会引用内存中"orignalState"中对象吗?还是会被克隆,占用新内存?

不会有多个新对象。只有一个对象存储在newState变量中,它就是您用对象文字创建的对象:

let newState = Object.assign({}, ...originalState)
//                           ^^ here

newState中的属性将通过标准赋值创建——它们将与originalState对象中的属性分开存在,但包含相同的值。