Lets say you have this object:

```
mainObj = {
   foo1: 'bar1',
   foo2: 'bar2',
   foo3: 'bar3'
}

```

Now I want to make a close of this object by doing `cloneObj = mainOb`. Now we have two identical objects.

When I change the value of `mainObj.foo1 = 'lolcats'` *after* I made the clone then for some reason `cloneObj.foo1 = 'lolcats'`

I tested this in Chrome's console on a much more complex object. I know for certain that there's nothing in my script that would keep making the two objects sync up. I even made sure of this by creating random names for the cloneObj.

Is this behavior done on purpose or am I experiencing some sort of bug? Or am I just missing something very fundamental here?