In Javascript The Good Parts, it states:

So I would expect the following code example to output 1001 since "objects are never copied but passed around by reference", so why does it output 0000?
var page_item = {
id_code : 'welcome',
title : 'Welcome',
access_groups : {
developer : '0010',
administrator : '0100'
}
};
page_item.access_groups.member = '0000';
var member = page_item.access_groups.member;
member = '1001';
$('p#test').html(page_item.access_groups.member); //should be "1001" but is "0000"
Added:
@Gareth @David, thanks, this is what I was trying to show in this example, works:
var page_item = {
id_code : 'welcome',
title : 'Welcome',
access_groups : {
developer : '0010',
administrator : '0100'
}
};
var page_item2 = page_item;
page_item2.access_groups.developer = '1001';
$('p#test').html(page_item.access_groups.developer); //is '1001'
x.y = ...is a method call onx's__dict__,x = ...is not a method call). @Potential answerers: Is there a similar reasoning in JS?x.y =is not a method call in Javascript. (Well, it is possible in ECMAScript to define setter and getter methods for object properties but that's not the paradigm which caused the confusion in this question)