单例模式的定义
单例模式是指在程序中多次使用同一个对象且作用相同时,只创建一个对象,让所有需要调用的地方都共享这一单例对象(也就是一个构造函数,一生只能创建一个实例化对象)
实现思路:准备一个变量,默认赋值为 null,然后在第一次实例化的时候,给这个变量赋值为实例化对象,后续在调用实例化的时候,就不再重新创建,而是拿到这个变量
// 因为Dialog要当成一个函数去使用,所以写一个自执行函数,里面return出来一个函数
const Dialog = (function() {
// 创建一个变量,开始赋值为 null,后期根据变量的值判断是不是第一次实例化对象
let instance = null
class Dialog{
constructor() {
this.title = ''
console.log('弹出来一个警示框')
}
// 在原型上写一个方法,每次传参从这里改变参数的值
setTitle(newTitle) {
this.title = newTitle
}
}
return function(type) {
// 这个分支判断只有第一次实例化对象的时候才会执行
if(instance === null) {
instance = new Dialog()
}
// 下面代码每次调用函数的时候都会执行
// 现在instance是Dialog这个构造函数的实例化对象,所以可以调用setTitle()
instance.setTitle(type)
// 最后把这个实例化对象return出去
return instance
}
})()
const d1 = Dialog('警告')
console.log(d1)
const d1 = Dialog('通用')
console.log(d2)