javascript 单体模式

javascript 单体模式


单体:
来划分命名空间
将一批相关的方法和属性组织在一起的对象
只能被实例化一次.
单体分为四种:

  • 普通单体
var person = {
            name:"普通单体",
            getName:function () {
                return this.name;
            }
        }
        console.log(person.getName(),person.name);
  • 有局部变量的单体
   var person = function () {
           //定义私有变量和方法
            var _name = "局部名";
            var _age = "2";
            /*
            * 可以对次有变量进行处理
            * 或是对ajax获得数据赋值,处理
            * */
            return {
                name:_name,
                age:_age
            }

        }();

        console.log(person.name);

  • 惰性单体
 var person = function () {
            var  instance;
            function init() {
                //定义私有变量和方法
                var _name = "局部名";
                var _age = "2";
                /*
                * 可以对次有变量进行处理
                * 或是对ajax获得数据赋值,处理
                * */
                return {
                    name:_name,
                    age:_age
                }
            }
            return {
                getInstance:function () {
                    console.log(instance);
                 
                    if(!instance){
                        instance = init();
                    };
                    return instance;
                }
            }
        }();

        console.log(person.getInstance().name);
        console.log(person.getInstance().age);
  • 分支单体
  var person = function (type) {
            //也可以使用if
            switch (type){
                case 1:
                    person = {
                        name:'1101'
                    };
                    break;
                case 2:
                    person ={
                        name :'1102'
                    };
                    break;
                default:
                    person = {
                        name:'1100'
                    }
            }

            return person;
        };

        console.log(person(1).name);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值