javascript重难点之设计模式

一、Singleton
//创建唯一实例供对象使用

        function Singleton(prop1){
            if(Singleton.caller != Singleton.getInstance) {
                throw new Error('Can not new Singleton instance');
            }
            this.prop1 = prop1;
            this.method1 = function () {
                console.log(this.prop1);
            }
        }
        Singleton.prototype.method2 = function(){
            console.log('This method 2');
        } ;
        Singleton._instance_ = null;
        Singleton.getInstance = function(prop1){
            if(!this._instance_ ){
                this._instance_ = new Singleton(prop1)
            }
            return this._instance_;
        };
        var obj1 = Singleton.getInstance('prop1');
        var obj2 = Singleton.getInstance('prop2');
        obj1.method1();//prop1
        obj2.method1();//prop1
        var obj3 = new Singleton('prop3');//出现异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值