假设我有一个用作类的函数:
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
声明为常量和附加到this
的b
之间有什么区别吗? 我能把这个函数转换成下面的类吗?
class Builder {
constructor() {
this.a = somethingThatReturnsAnArray();
this.b = somethingThatReturnsAnotherArray();
}
foo() {
this.a.push('test');
this.b.push('test');
}
}
如果是的话,在将所有内容转换为类属性时是否有一些注意事项?
我猜将const b=...
转换为this.b
会有一些陷阱,但我不确定。 正确的做法是什么? 换句话说,当在JavaScript中重构为类时,我应该如何保持内部函数?
a
在类中应该是私有的。
class Builder {
#a = somethingThatReturnsAnArray();
constructor() {
this.b = somethingThatReturnsAnotherArray();
}
foo() {
this.#a.push('test');
this.b.push('test');
}
}