首页 > 其他 > 详细

单例

时间:2014-03-18 02:36:52      阅读:481      评论:0      收藏:0      [点我收藏+]

在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。

bubuko.com,布布扣
var mySingleton = {
    property1: "something",
    property2: "something else",
    method1: function () {
        console.log(‘hello world‘);
    }
};
bubuko.com,布布扣
bubuko.com,布布扣
var mySingleton = function () {
    /* 这里声明私有变量和方法 */
    var privateVariable = ‘something private‘;
    function showPrivate() {
        console.log(privateVariable);
    }
    /* 公有变量和方法(可以访问私有变量和方法) */
    return {
        publicMethod: function () {
            showPrivate();
        },
        publicVar: ‘the public can see this!‘
    };
};

var single = mySingleton();
single.publicMethod();  // 输出 ‘something private‘
console.log(single.publicVar); // 输出 ‘the public can see this!‘
bubuko.com,布布扣
bubuko.com,布布扣
var Singleton = (function () {
    var instantiated;
    function init() {
        /*这里定义单例代码*/
        return {
            publicMethod: function () {
                console.log(‘hello world‘);
            },
            publicProperty: ‘test‘
        };
    }

    return {
        getInstance: function () {
            if (!instantiated) {
                instantiated = init();
            }
            return instantiated;
        }
    };
})();

/*调用公有的方法来获取实例:*/
Singleton.getInstance().publicMethod();
bubuko.com,布布扣

单例,布布扣,bubuko.com

单例

原文:http://www.cnblogs.com/Watcher/p/3605144.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!