定义对象时如何访问对象的属性本身?

时间:2018-06-26 18:24:31

标签: javascript arrays object

我试图动态地使用上一个属性的值来计算下一个属性。 我在Typescript中有这样的功能:

MacroGenerator(calories) {
  this.caloriedata['macroarray'] = [
    { 
      name: 'Low Carb, High Fat',
      pmacro: (Math.round(calories*220.46226218100)/100),
      pcals: (4*this.caloriedata['macroarray'][0].pmacro), // THIS IS HOW I TRIED ACCESSING THE PROPERTY AND GETTING ERROR
      fcals: (calories*0.3),
      fmacro: (Math.round(this.caloriedata['macroarray'][0].fcals/9)/100),
      ccals: (calories-this.caloriedata['macroarray'][0].pcals-this.caloriedata['macroarray'][0].fcals),
      cmacro: (Math.round(this.caloriedata['macroarray'][0].ccals/4)/100),
    }
  ]
}

我想在尝试访问该对象时尚未实例化。 有什么方法可以访问它?

1 个答案:

答案 0 :(得分:3)

您可以使用Javascript Getters

来自MDN

  

有时候,最好允许访问返回一个   动态计算的值,或者您可能要反映状态   内部变量,而无需使用显式方法   电话。在JavaScript中,可以通过使用   吸气剂

var obj = {
  a: 4,
  get b() {
    return this.a * 2;
  }
}

console.log(obj.b)