JS设计模式--单例模式
定义 :
无论实例化多少次对象,永远返回第一次的实例对象
一:不使用单例模式
// 定义一个构造函数,然后创建一个实例对象
class Dialog{
constructor(){
this.odiv = document.createElement('div')
console.log('创建一个div元素');
}
}
let d1 = new Dialog()
console.log(d1);
let d2 = new Dialog()
console.log(d2);
console.log(d1 == d2);
//输出结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/861eefc71640952ff3be874138cc2817.png)
二:使用单例模式:
//需求:创建多个实例对象的时候,要想每次只执行一次costructor,每次new出来的都是同一个实例,这样就创建了一个div
//创建自调用函数,避免全局污染
let singleFun = (function(){
//instance避免全局污染,相对于外层函数为局部变量,使用闭包将instance局部变量返回,相对于内层函数为全局变量,内层函数也可以使用instance
let instance = null; //null为false
class Dialog{
constructor(){
this.odiv = document.createElement('div')
console.log('创建一个div元素');
}