单例模式

最简单的方法是字面量,声明一个字面量对象

var Demo ={
     name: 'lili',
     method : function(){
           .....
     }
}

还有构造函数的方法,就是把一个属性提出来作为公共的属性

function Construct(){
    // 确保只有单例
    if( Construct.unique !== undefined ){
        return Construct.unique;
    }
    // 其他代码
    this.name = "NYF";
    this.age="24";
    Construct.unique = this;
}
var t1 = new Construct() ;
var t2 = new Construct() ;

单例模式有一种方法,是用闭包实现的,
闭包的外部变量demo来缓存生成的对象,如果已有就返回,否则才生成对象

var Demo = function(){};
Demo.getSingle = (function () {
        var demo = null;
        return function (name) {
            if (!demo) {
                demo = new Demo(name);
            }
            return demo;
        }
})();

不用对象的属性也可以,直接用新的函数来代理

var getSingle = (function () {
.....
}();

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,943评论 2 17
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,062评论 0 2
  • 今天是2018/07/02, 今天继续带大家走进 js 底层的设计模式 , 作为一个web工程师,我想次面试,都 ...
    爱尔兰的男孩阅读 326评论 0 0
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,120评论 1 10
  • 这个季节,野外总会见到很多弯着腰,一手拿着铲,一手提着袋子的老人,很多时候,她们身后还会跟着她们的孙子孙女,这熟悉...
    时间故事阅读 290评论 0 0