Question: If for instance we copy an object like this and modify a property in our copied object:

```
let user = { name: 'John' };

let admin = user;

admin.name = 'Pete'; // changed by the "admin" reference

alert(user.name); // 'Pete', changes are seen from the "user" reference

```

Why does: 

```
let user = { name: 'John' };
let admin = user;
user = null;
console.log(user); // will return null
console.log(admin);// will return {name: "John"}

```

Answer: 
By calling `user = null`, you're destroying the reference that the existing Object had to the variable called `user`, not the actual Object.

You'll be able to use the Object as long as there exists some reference to it. When there is no more references, it'll be garbage collected eventually.

Visualisation of what you did:

```
user --> { name: 'John' }

user --> { name: 'John' } <-- admin

user --> null
         { name: 'John' } <-- admin

```
There is a heavy misunderstanding on **how javascript works**

with

```
let admin = user;

```

you are **referencing** `user` in `admin` var, **not cloning** it at all.