提问者:小点点

在Javascript中重构为类时,应如何配置内部函数


假设我有一个用作类的函数:

function Builder() {
  const a = somethingThatReturnsAnArray();
  this.b = somethingThatReturnsAnotherArray();

  this.foo = () => {
    a.push('test');
    this.b.push('test');
  }
}

// Later...

const builder = new Builder();
builder.foo();

a声明为常量和附加到thisb之间有什么区别吗? 我能把这个函数转换成下面的类吗?

class Builder {
  constructor() {
    this.a = somethingThatReturnsAnArray();
    this.b = somethingThatReturnsAnotherArray();
  }

  foo() {
    this.a.push('test');
    this.b.push('test');
  }
}

如果是的话,在将所有内容转换为类属性时是否有一些注意事项?

我猜将const b=...转换为this.b会有一些陷阱,但我不确定。 正确的做法是什么? 换句话说,当在JavaScript中重构为类时,我应该如何保持内部函数?


共1个答案

匿名用户

a在类中应该是私有的。

class Builder {
  #a = somethingThatReturnsAnArray();

  constructor() {
    this.b = somethingThatReturnsAnotherArray();
  }

  foo() {
    this.#a.push('test');
    this.b.push('test');
  }
}