保证一个类只有一个实例,并且提供一个全局的访问位置。
可以用来实现全局的一些状态管理或者独一无二的数据
- class Wjt{
- constructor(name,idNumber,gender){
- this.name = name
- this.idNumber = idNumber
- this.gender = gender
- }
- //可以直接使用Wjt调用的静态方法
- static getInstance(name,idNumber,gender){
- if(!this.instance){
- this.instance = new Wjt(name,idNumber,gender)
- }
- return this.instance
- }
- }
-
- //王惊涛注册户籍
- const wjt1 = Wjt.getInstance('王惊涛','123456789','man')
- //再次注册户籍
- const wjt2 = Wjt.getInstance('新惊涛','987654321','man')
- console.log(wjt1,'wjt1')
- console.log(wjt2,'wjt2')
- console.log(wjt1 === wjt2) //true
- //第一次已经注册成功了,instance已经有了固定的值,wjt已经存在于这个世界上了,且是唯一不可变的,所以用单例模式