-  
При передаче объектов в качестве параметров JavaScript передает их по ссылке и затрудняет создание локальных копий объектов.
var o = {}; (function(x){ var obj = x; obj.foo = 'foo'; obj.bar = 'bar'; })(o)oбудет иметь.fooи.bar. -  
Можно обойти это путем клонирования; простой пример:
var o = {}; function Clone(x) { for(p in x) this[p] = (typeof(x[p]) == 'object')? new Clone(x[p]) : x[p]; } (function(x){ var obj = new Clone(x); obj.foo = 'foo'; obj.bar = 'bar'; })(o)oне будет.fooили.bar. 
Вопрос
- Есть ли лучший способ передать объекты по значению, кроме создания локальной копии/клона?