Javascript 从另一个属性访问对象属性
我正在为我的js文件使用对象结构,并希望能够将其中一个属性(即数组)分配给其他属性之一:Javascript 从另一个属性访问对象属性,javascript,object,properties,Javascript,Object,Properties,我正在为我的js文件使用对象结构,并希望能够将其中一个属性(即数组)分配给其他属性之一: AvGen = { theBody: { bodies: [ fooObj, foo2Obj, // <--- assign this property... foo3Obj ], bodyColor: '#DB6EDB', currBodyNr: 1,
AvGen = {
theBody: {
bodies: [
fooObj,
foo2Obj, // <--- assign this property...
foo3Obj
],
bodyColor: '#DB6EDB',
currBodyNr: 1,
currBodyObj: AvGen.theBody.bodies[1] // <--- ...to this property
// ... rest of the code
如果我删除“AvGen”,它会说“theBody”没有定义。如何实现这一点?您必须首先初始化对象
AvGen
,以便它获取实体的设置值,然后通过一个函数指定要的对象。currBodyObj
AvGen
尚未在该行实例化。相反,请执行以下操作:
AvGen = {};
AvGen.theBody = {};
AvGen.theBody.bodies = [fooObj, foo2Obj, foo3Obj];
AvGen.theBody.bodyColor = '#DB6EDB';
AvGen.theBody.currBodyNr = 1;
AvGen.theBody.currBodyObj = AvGen.theBody.bodies[1];
// etc..
在较新的浏览器中,可以使用getter:
AvGen = {
theBody: {
bodies: [
1,
2,
3
],
bodyColor: '#DB6EDB',
currBodyNr: 1,
get currBodyObj() {
return AvGen.theBody.bodies[AvGen.theBody.currBodyNr];
}
}
}
console.log(AvGen.theBody.currBodyObj); //2
但您也可以只使用方法而不是属性:
currBodyNr: 1,
currBodyObj: function() {
return AvGen.theBody.bodies[AvGen.theBody.currBodyNr];
}
//...
console.log(AvGen.theBody.currBodyObj()); //2
x=foo2Obj,然后currBodyObj:x。。。
currBodyNr: 1,
currBodyObj: function() {
return AvGen.theBody.bodies[AvGen.theBody.currBodyNr];
}
//...
console.log(AvGen.theBody.currBodyObj()); //2