单例模式 - 演示与场景

2019-06-09  本文已影响0人  EmilWong

UML类图

代码演示:

class  SingleObject {
  login(){
    console.log('login...')
  }
}
SingleObject.getInstance = (function () {
  let instance
  return function () {
    if(!instance) {
      instance = new SingleObject()
    }
    return instance
  }
})()

let obj1 = SingleObject.getInstance()
obj1.login()
let obj2 = SIngleObject.getInstance()
obj2.login()

console.log('obj1 === obj2', obj1 === obj2)

let obj3 = new SingleObject() // 无法完全控制
obj3.login()
console.log('obj1 === obj3', obj1 === obj3) //false

使用场景:
jQuery只有一个$

// jQuery只有一个$
if (window.jQuery != null) {
  return window.jQuery
} else {
  // 初始化
}

模拟登录框
vuex和redux中的store

上一篇 下一篇

猜你喜欢

热点阅读