Вы пытаетесь создать новый объект и дать ему имя, передав это имя в функцию. Это не работает, потому что в JavaScript имена переменных должны быть определены явно, они не могут быть созданы или изменены динамически во время выполнения.
Возвращаем копию объекта, затем присваиваем эту копию новой переменной:
let user = {
name: "David",
age: 25,
}
function objectClone(object) {
let newObject = {};
for (let key in object) {
newObject[key] = object[key];
}
return newObject;
}
let user2 = objectClone(user);
console.log(user2.name); // выводит "David"