【问题标题】:Access JavaScript Object Literal value in same object [duplicate]访问同一对象中的 JavaScript 对象文字值 [重复]
【发布时间】:2012-09-21 12:09:07
【问题描述】:

可能重复:
Self-references in object literal declarations

有没有办法在同一个对象字面量中访问属性名的值?像这样的:

myFunction.init({
    varOne: 'something',
    varTwo: this.varOne + 'something else'
})

【问题讨论】:

  • 当然可以。使用 getter 和 setter 或通过创建函数来固定对象的范围。不知道为什么选择其他答案
  • @OzLodriguez - 你为什么不发布对此的答案或指向 jsfiddle/codesandbox/etc 的链接?
  • @AdrianFlorescu,@BlueYoshi 在已接受答案的评论中发布了一个示例。但是,@OzLodriguez 这种方法有一个问题。当 varOne 使用 getter 方法更改时,原始问题中的 varTwo 将始终更新。这与我所期望的问题中的行为不同(假设它甚至是可能的)。如果问题中的代码确实有效,我希望它用varOne 初始化一次varTwo,如果将来更改varOne,则不会更改varTwo

标签: javascript javascript-objects


【解决方案1】:

不,无法从定义本身访问当前正在定义的对象字面量。

如果您想根据其他属性的值设置属性,那么您要么需要将它们都基于某个外部值(即不是属性本身),要么在定义对象字面量后运行一个初始化函数,该函数可以根据其他属性的值设置一些属性。

【讨论】:

猜你喜欢
  • 2021-09-09
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2020-09-19
  • 2021-10-27
  • 2016-07-08
  • 1970-01-01
相关资源
最近更新 更多