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