Javascript基础进阶(九)单例模式

单例模式

单例模式?

大白话理解: 把描述同一事物(同一个对象)的属性和方法放在一个内存空间下,起到了分组的作用,这样不同事物之间的属性及时属性名相同,也互相不发生影响,这种分组模式叫做“单例模式”。
单例模式是项目中经常用到的一种模式,因为用它做模块化开发。

var fn = function() {
    return {
        name: '浮云先生',
        age: 18,
    }
};
var obj1 = fn()
var obj2 = fn()
// obj1 === obj2 // true

obj1 和 obj2 互不影响

高级单利模式

var searchModel = (function(){
    function moadeA() {
          ....
    }
    return {
        moadeA: moadeA
    }
})()

searchModel .moadeA()

利用jq callbacks

var searchModel = (function(){
    var callbacks = $.callbacks()
    function moadeA() {
          console.log('A')
    }
    function moadeB() {
          console.log('B')
    }
    callbacks.add(moadeA)
    callbacks.add(moadeB)
    return {
        init: function() {
            callbacks.fire()
        }
    } 
})()

searchModel .moadeA()

你可能感兴趣的:(Javascript基础进阶(九)单例模式)