惰性单例JavaScript实现与应用经验分享

惰性单例的实现方式,算是前端圈里挺常用的一招了,适合那种要节省资源、懒加载的场景。像Singleton.getInstance这种写法,只有你真用到它的时候,实例才会被创建,响应也快,代码也清爽。其实这种写法在多框架底层也能见到。尤其你做页面初始化优化时,搞个惰性单例,能省不少事儿,内存也不浪费。

代码也不复杂,就这样:

Singleton.getInstance = (function(){
  var instance = null;
  return function(name){
    if (!instance){
      instance = new Singleton(name);
    }
    return instance;
  }
})();

嗯,看着是不是挺眼熟?你只要记得这写法是“用的时候再创建”,基本就差不多了。哦对了,闭包这招在里面起了大作用,把instance牢牢封在了作用域里,不会被外部乱动。

如果你在优化首屏加载、懒加载组件,或者做工具类封装的时候,真的可以考虑用这种惰性单例的套路。逻辑清晰、性能友好,关键还挺省事。

有兴趣的话,可以去看看通用的惰性单例-清华大学计算机考研经验贴》,讲得还挺细,适合想深入了解的你。

pdf 文件大小:8.5MB