这似乎有点奇怪,但让我详细说明...我有一个对象的实例(在这种情况下,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();

最佳答案

默认情况下,没有元素不知道哪个数组拥有它们。主要是因为将元素包含在多个数组中非常容易。考虑以下

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;
}

10-02 02:27