首页 > 其他 > 详细

工具函数

时间:2015-12-10 16:39:53      阅读:261      评论:0      收藏:0      [点我收藏+]

2015年12月10日

var SystemState = {};

SystemState.jzqNum = 0;  //集中器数量
SystemState.workNum = 0;  //抄表命令数量

SystemState.jzq = {};  //集中器对象
SystemState.jzq.toString = function() {
    var name = ‘Object \‘SystemState.jzq\‘‘;
    return name;
};
var macid1 = ‘1508112202‘;  //模拟的集中器号1
var macid2 = ‘1508112203‘;  //模拟的集中器号2

//如果集中器对象中还未有该属性,接收到集中器的心跳就将集中器的表号添加为集中器对象的属性,值设置为true
addAttr(SystemState.jzq, macid1);
addAttr(SystemState.jzq, macid2);
delAttr(SystemState.jzq, macid1);

SystemState.work = {};  //抄表命令对象
SystemState.work.toString = function() {
    var name = ‘Object \‘SystemState.work\‘‘;
    return name;
};
var order_no1 = ‘15121013479174CFB655B0423A90AF6A0257C10115‘;
var order_no2 = ‘16121013479174CFB655B0423A90AF6A0257C10115‘;

var work = SystemState.work;
addAttr(work, order_no1);
addAttr(work, order_no2);
delAttr(work, order_no2);

console.log(SystemState);

//可以在集中器断开时即将其值设置为false,也可以直接删除。
// for (k in SystemState.jzq) {
//     console.log(k + ‘:‘ + SystemState.jzq[k]);
//     if(!SystemState.jzq[k]) {
//         delete SystemState.jzq[k];
//     }    
// }

//如果对象的此属性未定义,就添加此属性并设置值为ture
//视对象为集中器或抄表命令,为集中器或抄表命令数量加1
//成功返回true
function addAttr(obj, attribute) {
    if(typeof(obj[attribute]) === ‘undefined‘) {
        obj[attribute] = true;
        // console.log(obj.toString());
        console.log(‘add \‘‘ + attribute + ‘\‘ for ‘ + obj + ‘ success!‘);
        if(obj === SystemState.jzq) {
            SystemState.jzqNum += 1;
        } else if (obj === SystemState.work) {
            SystemState.workNum += 1;
        };
        return true;
    } else {
        return false;
    }
}

//如果对象的此属性已定义,删除此属性
//视对象为集中器或抄表命令,为集中器或抄表命令数量减1
//成功返回true
function delAttr(obj, attribute) {
    if(obj[attribute]) {
        delete obj[attribute];
        console.log(‘delete \‘‘ + attribute + ‘\‘ for ‘ + obj + ‘ success!‘);
        if(obj === SystemState.jzq) {
            SystemState.jzqNum -= 1;
        } else if (obj === SystemState.work) {
            SystemState.workNum -= 1;
        };
        return true;
    } else {
        return false;
    }    
}

//获取对象中布尔类型属性的个数
function getBoolAttrCount(obj) {
    var i = 0;
    for (k in obj) {            
        if(typeof(obj[k]) === ‘boolean‘) {
            // console.log(typeof(obj[k]));
            i ++;
        }
    }
    return i;
}

// console.log(SystemState);
// console.log(getBoolAttrCount(SystemState.jzq));

 

工具函数

原文:http://www.cnblogs.com/lswit/p/5036186.html

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