Объекты, добавленные в массив, передаются по значению? - PullRequest
0 голосов
/ 31 января 2019

В контексте Angular я работаю с пользовательскими объектами, определенными интерфейсом, скажем, «a» и «b».Я создаю их как атрибуты класса, а также их пустой массив.

   public a: CustomObj;
   public b: CustomObj;
   public array: CustomObj[]=[];

В конструкторе классов я заполняю массив a и b, тогда они не имеют значений.

this.array = [a,b];

В какой-то момент я изменяю a или b (с привязкой ([ngModel])), но при попытке доступа к этим объектам через массив они все еще "неопределены".

Может кто-нибудь объяснить, почему?

Спасибо.

1 Ответ

0 голосов
/ 01 февраля 2019

a и b являются ссылочными объектами, они содержат ссылку на экземпляр объекта в памяти.Когда вы идете

array = [a, b];

Теперь у вас есть массив с [undefined, undefined], потому что оба не указывали на экземпляр объекта.

Теперь, когда вы идете

a = {} //Some instance of an object

Это никак не влияет на массив, так как не знает, откуда появилось неопределенное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...