我试图动态地使用上一个属性的值来计算下一个属性。 我在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),
}
]
}
我想在尝试访问该对象时尚未实例化。 有什么方法可以访问它?
答案 0 :(得分:3)
您可以使用Javascript Getters
来自MDN
有时候,最好允许访问返回一个 动态计算的值,或者您可能要反映状态 内部变量,而无需使用显式方法 电话。在JavaScript中,可以通过使用 吸气剂
var obj = {
a: 4,
get b() {
return this.a * 2;
}
}
console.log(obj.b)