function setName(obj) {
// здесь вы создаете новое свойство у объекта переданного через параметр
obj.names = 'Nicholas';
// здесь вы локально создаете новый объект
// тем самым ссылку на объект переданный аргументом, теряете
// но не заменяете объект тот что был передан аргументом
obj = new Object();
// задаете свойство новому локальному объекту
obj.xx ='Greg';
// при выходе из функции локальный объект будет уничтожен
}