javascript - 怎么使用es6 的class 优雅地写出单例模式?
PHP中文网
PHP中文网 2017-04-11 13:12:56
[JavaScript讨论组]

如题,目前只想到通过全局变量的模式

var instance = null;

class Cache{  
    constructor() {
        if(!instance){
              instance = this;
        }
        return instance;
      }
}

但是明显的,这个方法并不优雅,求大神指点

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
阿神
class Cache {
  static getInstance() {
    if (!Cache.instance) {
      Cache.instance = new Cache();
    }
    return Cache.instance;
  }
}

var cache = Cache.getInstance();
高洛峰
class A {
    static created = false
    static instance = null

    constructor() {
        if (!A.created) {
            // doSomething
            A.instance = {}
            A.created = true
        }
        return A.instance
    }
}

需要babel支持 具体可以看 class的静态属性和实例属性

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号