我有一个 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
为纯函数吗?