Предполагая, что у меня есть функция, которая используется как класс:
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
как константы и b
прикрепленным к this
? Могу ли я преобразовать эту функцию в класс ниже?
class Builder {
constructor() {
this.a = somethingThatReturnsAnArray();
this.b = somethingThatReturnsAnotherArray();
}
foo() {
this.a.push('test');
this.b.push('test');
}
}
Если да, есть ли какие-то предостережения при преобразовании всего в свойства класса?
Думаю, преобразование const b = ...
в this.b
будет иметь некоторые подводные камни, но я не уверен. Как правильно это сделать? Другими словами, как мне использовать const внутри функции при рефакторинге класса в Javascript?