这是我到目前为止所做的。
class PriceCalc {
constructor(Obj) {
this.parts = Object.keys(Obj);
this.cost =
"$" +
Object.values(Obj)
.reduce((a, b) => a + b, 0)
.toFixed(2);
this.retail =
"$" +
(
Object.values(Obj).reduce((a, b) => a + b, 0) +
Object.values(Obj).reduce((a, b) => a + b, 0) * 1.75
).toFixed(2);
this.quote = qt + this.retail;
}
}
var total = new PriceCalc({
Motherboard: 520.99,
RAM: 250.4,
SSD: 500.8,
HDD: 400.66,
Case: 375.5,
Monitor: 600.75,
Keyboard: 100.99,
Mouse: 25.5
});
console.log(total.parts);
console.log(total.cost);
console.log(total.retail);
console.log(total.quote);
Id想要实现的是在类中声明值,然后仅调用类似的东西
var total = new PriceCalc({Motherboard, RAM, SSD, HDD});
并返回指定零件的组合值,在这种情况下,对于this.cost为$ 1,672.85
this[b]
获取对象属性qt + this.quote
将为您提供字符串连接,而不是算术运算。class PriceCalc {
Motherboard = 520.99;
RAM = 250.40;
SSD = 500.80;
HDD = 400.66;
Case = 375.50;
Monitor = 600.75;
Keyboard = 100.99;
Mouse = 25.50;
parts = []
cost = '$0'
retail = '$0'
quote = '0'
constructor(Obj) {
this.parts = Obj.join(',');
this.cost = "$" + (Obj.reduce((a, b) => a + this[b], 0).toFixed(2));
this.retail = "$" + ((Obj.reduce((a, b) => a + this[b], 0) + (Obj.reduce((a, b) => a + this[b], 0) * 1.75)).toFixed(2));
//this.quote = qt + this.retail;
}
}
var total = new PriceCalc([
'Motherboard',
'RAM',
'SSD',
'HDD'
]);
console.log(total.parts)
console.log(total.cost)
console.log(total.retail)
console.log(total.quote)