2016-04-30 1 views
0

Если я сделать это в Javascript (ES6):Object.assign(), функциональные подходы и использование памяти

let originalState = [ 
    { id : 1, name : "One"}, 
    { id : 2, name : "Two"}, 
    { id : 3, name : "Three"} 
] 

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

Будет ли объекты в «NewState» ссылка на объектах «orignalState» в памяти, или будут они клонируются, беря новую память?

+1

Что такое 'государство'? – Tushar

+0

lol, Tusar, sooo быстро! – JordanHendrix

+0

Я считаю, что это 'Object.assign ({}, ... originalState)' – Tushar

ответ

2

Будут ли объекты в «newState» ссылаться на объекты с «orignalState» в памяти, или они будут клонированы, взяв новую память?

Не будет нескольких новых объектов. Существует только один объект, который хранится в переменной newState, это тот, который вы создали с объектом буквального:

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

Свойства в newState будут созданы стандартным назначением - они будут существовать отдельно от них объектов originalState, но они имеют одинаковое значение.

Смежные вопросы