Клонирование объекта

393
04 февраля 2017, 10:36
var user = {
  name: "Вася",
  age: 30
};
var clone = {}; // новый пустой объект
// скопируем в него все свойства user
for (var key in user) {
  clone[key] = user[key];
}

Вопрос в строке clone[key] = user[key]. По идее user[key] содержит только значение(Вася и 30) свойств name и age, а в переменной key хранится имя свойства? Но в результате клонирования скопировались и имена переменных. Как так вышло?

Answer 1

А как Вы хотели?
Клон должен быть идентичен по определению.

key - имя свойства (name, age); user[key] - значение свойства (Вася, 30).

Копировать объект проще так:

var user = { 
  name: "Вася", 
  age: 30 
}; 
 
let clone = Object.assign(user); 
 
console.dir(clone);

READ ALSO
Проблема с кареткой в angular

Проблема с кареткой в angular

Добрый день! Есть директива, которая оборачивает input, добавляет к input некий атрибут и затем компилирует этот элемент

379
Как экранировать слеш в JS

Как экранировать слеш в JS

Всем приветПомогите пожалуйста

1125