我知道它为什么起作用,但是我不太确定。我假设它与this.count = this.count + 1等于++有关,但是为什么它不只是增加1而没有增加5?
class Multiplier {
constructor() {
this.count = 1
}
increment() {
this.count = this.count + 1;
}
apply(x) {
return this.count * x;
}
}
let multiplier = new Multiplier();
console.log(multiplier.apply(5)); //multiplier.apply(5) = 5
multiplier.increment(); //miltiplier.increment(++) = 10
multiplier.increment(); //multiplier.increment(++) = 15
console.log(multiplier.apply(5)); // 15*
答案 0 :(得分:2)
apply(x) {
return this.count * x;
}
这不会更改您的count
值。它只是返回一个值,该值是count
与5的乘积。
您可以考虑将其重写如下:
apply(x) {
this.count = this.count * x;
return this.count;
}
答案 1 :(得分:0)
只需使用以下正确的申请方法即可:
apply(x) {
return this.count *= x;
}
答案 2 :(得分:0)
它的工作方式如下:
let multiplier = new Multiplier();
console.log(multiplier.apply(5)); //multiplier.apply(5) = 5
multiplier.increment(); // this.count = 1 + 1 =2;
multiplier.increment(); // this.count = 2 + 1 =3
console.log(multiplier.apply(5)); // 3 * 5 =15
更正
return this.count *= x;