Изменение объекта по ссылке.
Есть функция-конструктор и функция, проверяющая правильность параметров вновь создаваемого объекта с помощью функции-конструктора. В глобальной области видимости есть экземпляр, который попадает в проверяющую функцию по ссылке, где он изменяется с помощью функции-конструктора. Проблема в том, что вне функции параметры объекта не изменяются. Выглядит всё это примерно так:
var obj={e: 4}; function construct(e) { this.e=e; } function new_obj(o) { if(...) o=new construct(5); } new_obj(obj); Параметр е не изменился. В чем проблема? Как сделать, чтобы экземпляр изменялся в проверяющей функции с помощью конструктора, а не просто изменять его свойства. |
Переменная o - это не сам объект, а ссылка на него.
Когда ты делаешь o=new... в этот момент создается новый объект и ссылка на него присваивается переменной o. Дальше думай сам, как исправить, тут несколько путей. |
Часовой пояс GMT +3, время: 00:48. |