Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение объекта по ссылке. (https://javascript.ru/forum/misc/41027-izmenenie-obekta-po-ssylke.html)

_SR_71_ 28.08.2013 19:02

Изменение объекта по ссылке.
 
Есть функция-конструктор и функция, проверяющая правильность параметров вновь создаваемого объекта с помощью функции-конструктора. В глобальной области видимости есть экземпляр, который попадает в проверяющую функцию по ссылке, где он изменяется с помощью функции-конструктора. Проблема в том, что вне функции параметры объекта не изменяются. Выглядит всё это примерно так:
var obj={e: 4};

function construct(e) {
this.e=e;
}

function new_obj(o) {
if(...)
o=new construct(5);
}

new_obj(obj);
Параметр е не изменился.
В чем проблема?
Как сделать, чтобы экземпляр изменялся в проверяющей функции с помощью конструктора, а не просто изменять его свойства.

zOdmin 28.08.2013 19:54

Переменная o - это не сам объект, а ссылка на него.
Когда ты делаешь o=new... в этот момент создается новый объект и ссылка на него присваивается переменной o.
Дальше думай сам, как исправить, тут несколько путей.


Часовой пояс GMT +3, время: 00:48.