该对象如何自动递增?

时间:2019-03-05 12:01:36

标签: javascript object constructor

我知道它为什么起作用,但是我不太确定。我假设它与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*

3 个答案:

答案 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;