Javascript 从类中的另一个属性引用属性值';建造师

Javascript 从类中的另一个属性引用属性值';建造师,javascript,class,javascript-objects,Javascript,Class,Javascript Objects,我正试图从另一个属性的另一个方法引用在属性的前一个方法中返回的值 在构造函数中,但我得到一个“TypeError:无法读取未定义的属性'name'” 类别贷款{ 构造函数(用户、贷款金额、期限、id=0、状态='pending',已偿还='false'){ this.id=id+1; this.user=用户; this.loanAmount=loanAmount; 这个。基调=基调; 这个状态=状态; 偿还的;偿还的; this.interest=(函数interest(){ 回报率(贷款金

我正试图从另一个属性的另一个方法引用在属性的前一个方法中返回的值
在构造函数中,但我得到一个“TypeError:无法读取未定义的属性'name'”

类别贷款{
构造函数(用户、贷款金额、期限、id=0、状态='pending',已偿还='false'){
this.id=id+1;
this.user=用户;
this.loanAmount=loanAmount;
这个。基调=基调;
这个状态=状态;
偿还的;偿还的;
this.interest=(函数interest(){
回报率(贷款金额*0.05);
}());
this.monthlyInstall=(函数monthlyInstall(){
收益(贷款金额+本息)/期限;
}());
this.balance=(函数balance(){
收益(贷款金额+利息);
}());
this.createdAt=new Date().toLocaleString();
};
};
康斯特贷款=新贷款('steve.jobs',50000,5);
控制台日志(贷款)而不是

this.monthlyInstall = (function monthlyInstall() {
      return (loanAmount + this.interest) / tenor;
    }());
照办

 this.monthlyInstall = (loanAmount + this.interest) / tenor;

或者您需要将“this”引用传递到monthlyInstall()-方法中,因为否则它不知道“this”是什么。

如果您希望此数量是动态的(您更新了相应更新的值),则它们需要是函数。我在下面定义了它们的函数。这意味着,如果更改其中一个计算变量,它们将自动更新

类别贷款{
构造函数(用户、贷款金额、期限、id=0、状态='pending',已偿还='false'){
this.id=id+1;
this.user=用户;
this.loanAmount=loanAmount;
这个。基调=基调;
这个状态=状态;
偿还的;偿还的;
this.createdAt=new Date().toLocaleString();
};
利息=()=>(this.loanAmount*0.05);
monthlyInstall=()=>(this.loanAmount+this.interest())/this.tenor;
余额=()=>(this.loanAmount+this.interest());
};
康斯特贷款=新贷款('steve.jobs',50000,5);
控制台日志(贷款);
console.log(loan.interest());
console.log(loan.monthlyInstall());
console.log(loan.balance());
贷款期限=6;
控制台日志(贷款);
console.log(loan.interest());
console.log(loan.monthlyInstall());

console.log(loan.balance())发布对象并code@prasanth我已经发布了itI可能是错误的,但javascript中没有“class”关键字,这是typescript。更新您的标签。@maximelian1986根据其外观更新其ES6代码。所以babel被用来转换成普通的JS