这可能看起来有点奇怪,但让我详细说明......我有一个对象的实例(在这种情况下z是Bla的实例),它有一个其他对象的列表(Bla2's),类似于这样:
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();
答案 0 :(得分:5)
默认情况下,没有元素不知道哪个数组拥有它们。主要是因为元素很容易包含在多个数组中。请考虑以下
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;
}