单例模式

2017-09-06  本文已影响0人  强仔_5787
var instance;

function singleton(){
  if (instance != null){
    return instance
  }

  this.name = 'Jim';
  this.age = 10;

  instance = this;
}

var a = new singleton();
var b = new singleton();
console.log(a === b);

上面这种方法可以实现单例模式,但是instance变成了全局属性,稍加改进,通过匿名函数形成闭包解决这个问题。

var singleton;
!function() {
    var instance;

    singleton = function() {
        if (instance != null) {
            return instance
        }

        this.name = 'Jim';
        this.age = 10;

        instance = this;
    }
}()

var a = new singleton();
var b = new singleton();
console.log(a === b);

上一篇 下一篇

猜你喜欢

热点阅读