Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2013, 19:02
Интересующийся
Отправить личное сообщение для _SR_71_ Посмотреть профиль Найти все сообщения от _SR_71_
 
Регистрация: 15.03.2012
Сообщений: 15

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

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

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

new_obj(obj);
Параметр е не изменился.
В чем проблема?
Как сделать, чтобы экземпляр изменялся в проверяющей функции с помощью конструктора, а не просто изменять его свойства.
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2013, 19:54
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение select при клике по ссылке user_001 Элементы интерфейса 3 21.07.2013 17:33
Изменение значения после клика по ссылке MasterDmx Элементы интерфейса 8 26.06.2013 11:14
proxy() и изменение переданного в контекст объекта lamo4ok jQuery 1 15.05.2013 16:52
Изменение значение объекта daima Общие вопросы Javascript 0 19.10.2012 17:22
изменение позиции фона одного div пока мышь находится на ссылке desir Javascript под браузер 3 05.02.2012 22:54