单例模式

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
说白了就是:就算你重复调用想去生成新的实例,但返回的仍然是这个实例,在js中也就是闭包的应用。

var singleton = (function () {
        var animal
        return function (name) {
          if (!animal) animal = new Animals(name)
          return animal
        }
      })()
      function Animals(name) {
        this.name = name
        this.getName = function () {
          console.log(this.name)
        }
      }
      var animal1 = singleton('小猫咪')
      var animal2 = singleton('大鲨鱼')
      var animal3 = singleton('旺财')
      animal1.getName() //小猫咪
      animal2.getName() //小猫咪
      animal3.getName() //小猫咪
      console.log(animal1 === animal2) //true

你可能感兴趣的