Javascript 从对象数组中的一个对象访问父集合/获取方法
我有一个对象“parent”,它有一个setter/getter方法“a”,这个对象还有一个用对象构造函数创建的对象数组“让我们称之为数组”,我的想法是,如果对象在“数组”中,我想访问方法a 我写了一些代码,以便更好地理解:Javascript 从对象数组中的一个对象访问父集合/获取方法,javascript,json,Javascript,Json,我有一个对象“parent”,它有一个setter/getter方法“a”,这个对象还有一个用对象构造函数创建的对象数组“让我们称之为数组”,我的想法是,如果对象在“数组”中,我想访问方法a 我写了一些代码,以便更好地理解: function parent() { this.a; //This is a setter/getter method this.array=[]; // array of objects this.array.push(new child()); }
function parent()
{
this.a; //This is a setter/getter method
this.array=[]; // array of objects
this.array.push(new child());
}
function child()
{
this.aParentMehod;
}
b=new parent();
我想要的是b.array[0]。aParentMethod
返回b.a
顺便说一句,我正在使用对象构造函数,因为我不知道我会有多少个孩子,但这是一个更好的方法,请告诉我
先谢谢你
编辑:
通过这样做,我取得了以下成就:
function parent()
{
this.a; //This is a setter/getter method
this.array=[]; // array of objects
this.array.push(new child(self));
}
function child(self)
{
this.parent=self;
this.aParentMehod=this.parent.a;
}
b=new parent();
但是,当我更改父级a
属性时,子级属性不会更改,并且aParentMehod
显示a
我想要的是b.array[0]。aParentMethod
返回b.a
要做到这一点,您需要做两件事:
a
***
注释):
不过,这不是一个理想的结构;理想情况下,您应该避免让子对象引用父对象(这几乎意味着它不能使用aParentMethod
)
旁注:JavaScript中压倒性的惯例是,像您这样的构造函数是用大写字母开头的。因此
Parent
和Child
而不是Parent
和Child
。像这样的约定有助于可读性。我试图回答这个问题,但不太清楚,尤其是因为给出的代码显然是伪代码……是的,它是伪代码,因为所有代码都非常大,我的想法是,加载文件时将创建一个未确定数量的孩子,所有这些孩子都必须访问parents对象中的setter/getter方法,非常感谢。例如,如果我在数组中有10个child对象,所有这些child都需要从父对象访问setter/getter方法,那么我必须如何编写代码?再次感谢您,我开始编写代码,所有这些约定/技巧对我都非常有用。@david.t_92:您只需为所有十个孩子重复上面的第一行***
。
function parent()
{
this.a;
this.array=[];
this.array.push(new child(this)); // ***
}
function child(parent) // ***
{
this.parent = parent;
}
Object.defineProperty(child.prototype, "aParentMethod", { // ***
get: function() { // ***
return this.parent.a; // ***
} // ***
}); // ***
b=new parent();