пушу функцию для хранения объектов в localStorage .
вот кусок
userOptions = {
	
	set : function (key, value) {
		
		if (!ls.get('userId')) return;
		
		var userId = ls.get('userId');
		
		var opObj = {}
		
		if ($.parseJSON(ls.get('OptionsOfUser-' + userId))) opObj = $.parseJSON(ls.get('OptionsOfUser-' + userId));
		
		opObj[key] = value;
		ls.set('OptionsOfUser-' + userId, $.toJSON(opObj));
	}
}
ls - это объект (не мной написанный) для работы с localStorage, он если нет localStorage пихает данные к кукки. Это так для справки.
Суть проблемы:
если я просто передаю ключ,значение , то все ок, но если я передам ключ,объект , то это объект полностью перезапишет объект в ключе.
постараюсь пояснить 
если я сделаю вот так
userOptions.set('positions',{ 'item1' :  '001' });
userOptions.set('positions',{ 'item2' :  '002' });
то на выходе будет
obj = {
    'positions': {'item2' :  '002'}
}
а мне надо
obj = {
    'positions': {'item1' :  '001', 'item2' :  '002'}
}