单例模式实现的核心思想
定义一个构造函数
定义一个变量为空或者没有内容
判断
如果变量没有内容,或者内容是空
证明没有执行过构造函数,没有生成实例化对象,可以执行构造函数
如果变量有内容,或者内容不是空
证明已经执行了构造函数,已经生成了实例化对象, 不再执行构造函数,直接返回这个对象
class CreateObj{};
let obj = null;
function isObj(){
if(obj === null){
obj = new CreateObj();
}
return obj;
}
使用函数,调用构造函数,创建实例化对象
const obj1 = isObj();
const obj2 = isObj();
此时obj1与obj2相等,
原因:
创建对象obj2时,上一次已经创建了obj,因此并没有创建新的实例化对象,而是在判断不是空后,直接返回了定义过的obj
本质上说 obj1 obj2 只创建过一个实例化对象,实际上是调用相同的内存地址