class类的方法
1、饿汉式
- 在单例类被加载时候(立即加载),就实例化一个对象并交给自己的引用.
- 线程安全(前端不讨论)
class SingleObject {private static instance: SingleObject = new SingleObject();private SingleObject() {}public static GetInstance(): SingleObject {return this.instance}}
这里我添加一个自己常用的公开的类(别怕!new它)
class SingleObject {private static instance: SingleObject;constructor() {if (!SingleObject.instance) {SingleObject.instance = this}return SingleObject.instance}}
2、懒汉式
- 在真正使用的时候才会实例化一个对象并交给自己的引用(延迟加载)
- 非线程安全(前端不讨论)
class SingleObject {private static instance: SingleObject;private SingleObject() { }public static GetInstance(): SingleObject {if (!this.instance) {this.instance = new SingleObject()}return this.instance}}
闭包
- 为了模仿这个单例,使用闭包记住词法作用域的作用
function SingleObject(){}SingleObject.getInstance = (function(){let instance;return function(){if(!instance){instance = new SingleObject()}return instance}})()
