javaScript-单例模式

单例模式:一个类只有一个实例

实现

立即执行函数实现

       let Singleton = (function() {
            let instance = null;
            return function(name, age) {
                if(instance) {   // 存在实例直接返回
                    return instance;
                }
                instance = this;  // 第一次new则保存(缓存)实例
                this.name = name;
                this.age = age;
            };
        })();

        const test1 = new Singleton('jack', 11);
        const test2 = new Singleton('tom', 22);
        console.log(test1 == test2);   // true

惰性函数实现(推荐)

       var Singleton = function(name, age) {
            let install = this;
            this.name = name;
            this.age = age;
            Singleton = function(name) {
                return install;
            }
        }

        const test1 = new Singleton('jack', 11);
        const test2 = new Singleton('tom', 22);
        console.log(test1 === test2);   // true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容