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

Posted RunningAndRunning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
    }
}

 




以上是关于javaScript设计模式---(单例模式学习)的主要内容,如果未能解决你的问题,请参考以下文章

《javascript设计模式与开放实践》学习惰性单例模式

单例模式 | 程序员都想要探索的 Javascript 设计模式

单例模式 | 程序员都想要探索的 Javascript 设计模式

js设计模式学习 --- 单例模式1

JavaScript 创建对象之单例工厂构造函数模式

JavaScript设计模式(单例模式)