我想在 class 中声明对象的值,并且只在我声明新的 class 时调用键。我能做什么?
I want to declare the values of the objects within the class and only call the keys when Im declaring a new class. What could I do?
这是我目前所做的。
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);
我想要实现的是在 class 中声明值然后只调用
var total = new PriceCalc({Motherboard, RAM, SSD, HDD});
和 return 指定部分的总价值,在本例中为 $1,672.85,this.cost
- 将默认值设置为 class 属性。
- 传递您想要获取的属性字符串。
- 使用
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 = '[=10=]'
retail = '[=10=]'
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)
这是我目前所做的。
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);
我想要实现的是在 class 中声明值然后只调用
var total = new PriceCalc({Motherboard, RAM, SSD, HDD});
和 return 指定部分的总价值,在本例中为 $1,672.85,this.cost
- 将默认值设置为 class 属性。
- 传递您想要获取的属性字符串。
- 使用
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 = '[=10=]'
retail = '[=10=]'
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)