*off topic*
> мы ж функцию не по ссылке передаем

В JavaScript-е объекты *всегда* передаются по ссылке.
Тут можно завести речь про промежуточный тип [Reference](http://www.ecma-international.org/ecma-262/5.1/#sec-8.7), который в этой ситуации уместен, но ... :hear_no_evil: