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 设计模式