码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-14 23:33:09      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:col   blog   instance   实例化   return   ons   str   有一个   变化   

单例模式

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

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

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设计模式---(单例模式学习)

标签:col   blog   instance   实例化   return   ons   str   有一个   变化   

原文地址:http://www.cnblogs.com/running1/p/7523380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!