理解:单例即只能实例一个对象,无论new多少次,new出来的都是同一个对象
这里用了闭包保存了instance变量,用于判断是否已经创建了实例,创建了则直接返回,否则new一个实例返回
//单例模式
const Grilfriend=(function(){
//构造函数
function Grilfriend(name){
this.name='name'
}
let instance = null
return function(...arg){
if(!instance){
instance = new Grilfriend(...arg)
}
return instance
}
})()
let p1 = new Grilfriend('yangzi')
let p2 = new Grilfriend('xiaotong')
console.log(p1,p2)
console.log(p1===p2) //true
假如我们要new一个girlfried,new了两次之后发现都是yangzi,因为我们第一次new的时候是yangzi,因为有yangzi了,所以无论我们怎么想new都new不出新的来了,所以我们不能那么花心!!