class Cash {
//你需要书写的代码
}
const cash1 = new Cash(105);
const cash2 = new Cash(66);
const cash3 = cash1.add(cash2);
const cash4 = Cash.add(cash1, cash2);
Console.log(`${cash3}`, `${cash4}`);
//代码输出结果为:1元7角1分 1元7角1分
class Cash {
constructor(x) {
this.x = x;
}
add(a) {
return parseInt((a.x + this.x) / 100) + '元' + parseInt((a.x + this.x) % 100 / 10) + '角' + (a.x + this.x) % 10 + '分'
}
static add(a, b) {
return parseInt((a.x + b.x) / 100) + '元' + parseInt((a.x + b.x) % 100 / 10) + '角' + (a.x + b.x) % 10 + '分'
}
}
const cash1 = new Cash(105);
const cash2 = new Cash(66);
const cash3 = cash1.add(cash2);
const cash4 = Cash.add(cash1, cash2);
console.log(`${cash3}`, `${cash4}`);
class Cash {
constructor(value) {
this.value = value;
}
add(a) {
return new Cash(a.value + this.value);
}
static add(a, b) {
return new Cash(a.value + b.value);
}
toString() {
const tmp = this.value % 100;
const y = (this.value - tmp) / 100 >>> 0;
const f = tmp % 10;
const j = (tmp - f) / 10 >>> 0;
return `${y}元${j}角${f}分`;
}
}
const cash1 = new Cash(105);
const cash2 = new Cash(66);
const cash3 = cash1.add(cash2);
const cash4 = Cash.add(cash1, cash2);
console.log(`${cash3}`, `${cash4}`);
// 虽然我对非静态add方法不改变this而是像静态方法一样返回新对象感觉很怪异