Вам необходимо добавить оператор return
в функцию calculateQuotation
.Вот почему, в случае, если это помогает.
Причина, по которой вы получаете undefined
, заключается в том, что переменной price
никогда не присваивается значение.
В этой строке:
const price = insurance.calculateQuotation(insurance);
price
получает то, что функция calculateQuotation
отправляет обратно с оператором return
.Однако в этой функции вы просто заполняете переменную price
, которая существует только в контексте этой функции.Я думаю, что для этого нужно добавить оператор return
в конце функции calculateQuotation
следующим образом:
Insurance.prototype.calculateQuotation = function(insurance) {
let price;
const base = 2000;
//get make
const make = insurance.make;
/**
1. america: 15
2. Asia : 5
3. europia: 35
*/
switch (make) {
case '1':
price = base * 1.15;
break
case '2':
price = base * 1.05;
break
case '3':
price = base * 1.35;
break
}
//get level
const level = insurance.level;
price = this.calculateLevel(price, level);
//get year
const year = insurance.year;
const difference = this.getYearDifference(year);
price = price - ((difference * 3) * price) / 100;
console.log(price);
return price; // Added this in
}