javaScript设计模式---(单例模式学习)

单例模式

一个类只能有一个实例化对象。如页面中的弹出框蒙层,一个页面只需要一个。

实现方式:创建一个类,这个类包含一个方法,这个方法在没有对象存在的情况下,将会创建一个新的实例对象。如果对象存在,这个对象只是返回这个对象的引用。

var singleton = (function singleton () {
    var instance = null; // 存储单例实例的引用
   // 创建单例
function init () {
// 私有方法和属性
function privateMethod () { console.log('this is a private method!') } var privateVariable = 'I am a private variable!' return {
       // 公有方法和属性 publicMethod:
function () { console.log('public') }, getPrivateVariable: function () { return privateVariable } } } return { getInstance: function () { if (!instance) { instance = init(); } return instance; } } })();

 此方法不够抽象,假如我们需要创建单例函数发生变化呢?所以我们进一步抽象函数

var singleton = function (fn) {
    var instance = null;
    return function () {
        return instance || fn.call(this, arguments)
    }
}

 

posted @ 2017-09-14 22:04  RunningAndRunning  阅读(104)  评论(0编辑  收藏  举报