У меня есть шаблонный класс ES6 Singleton с его конструктором, который получил переменную с именем name
in.
class Sample {
constructor (){
this.name = ''
}
setName = (name)=> {
this.name = name
}
getName = () => {
return this.name
}
}
export default new Sample()
Этот класс используется в другом модуле класса с синтаксисом import
.
// another class module
import Sample from './Sample'
class AnotherClassModule {
sampleMethod = async () => {
// some code
await Sample.setName('First Name')
}
//some code
anotherSampleMethod = async () => {
// some code
const name = await Sample.getName()
// some code
}
}
Насколько я знаю, при использовании этого способа у нас есть * побочный эффект в функции setName
, потому что она изменяет значение переменной, которая выходит за ее рамки. Следовательно, setName
не является чистой функцией.
Есть ли у нас какое-либо решение заменить setName
на чистую функцию?