在对象文字中引用javascript中嵌套对象的外层

时间:2019-02-23 20:55:49

标签: javascript

我正在尝试执行类似Self-references in object literals / initializers的任务,除了它是用于姨妈/叔叔键或父对象的同级键的值。例如:

const obj = {
  parent: {
    child: {
      aunt: /* aunt object */
    }
  },
  aunt: {
    foo: {
      bar: 1
    }
  }
}

这里有一个非常相似的问题Reference nested 'sibling'-property in object literal,但不幸的是,并不是我要找的东西。理想情况下,该解决方案将是可扩展的,并且可能需要处理在某些情况下我想访问与密钥相关的曾堂兄弟对象的情况。谢谢!

1 个答案:

答案 0 :(得分:1)

在单个对象文字中是不可能的。您必须先定义对象,然后分配给aunt键。

const obj = {
  parent: {
    child: {
    }
  },
  aunt: {
    foo: {
      bar: 1
    }
  }
};
obj.parent.child.aunt = obj.aunt;
console.log(obj.parent.child.aunt === obj.aunt)

或者,您可以预先定义aunt

const aunt = {
  foo: {
    bar: 1
  }
};
const obj = {
  parent: {
    child: {
      aunt
    }
  },
  aunt
};
console.log(obj.parent.child.aunt === obj.aunt)