Может ли элемент массива знать, кто является владельцем этого массива в JS? - PullRequest
2 голосов
/ 26 сентября 2011

Это, вероятно, немного странно, но позвольте мне уточнить ... У меня есть экземпляр объекта (в данном случае z - это экземпляр Bla), и у него есть список других объектов (Bla2), что-то вродеэто:

Bla = function()
{
    this.array = [new Bla2(), new Bla2(), new Bla2()];
    this.x = 4;
}

Bla2 = function()
{
    this.y = MYOWNER.x; //in this case, z is the owner
}

z = new Bla();

1 Ответ

5 голосов
/ 26 сентября 2011

По умолчанию никакие элементы не знают, какому массиву они принадлежат.Прежде всего потому, что элемент очень легко содержать в нескольких массивах.Рассмотрим следующее

var x = new Bla2();
var array1 = [x];
var array2 = [x];

. В этом случае x находится в 2 массивах, поэтому наличие свойства одного владельца будет по своей сути некорректным.

Возможно создать это отношение вручную, если того требуют определенные обстоятельства.Рассмотрим следующее

this.array = [new Bla2(), new Bla2(), new Bla2()];
for (var i = 0; i < this.array.length; i++) {
  this.array[i].owner = this.array;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...