• 封装的一个localStorage对象
  • 发布于 2个月前
  • 545 热度
    0 评论
  • 奥特蛋
  • 1 粉丝 42 篇博客
  •   

我们在做系统时,有时会使用localStorage来存储一些数据。特别是用来存储一些需要比较长久保留的数据(无自动过期时间),今天我们就来封装一个localStorage方法,以实现数据的快速存储,删除,读取等操作。

具体代码如下:

var CL_LocalStorage = ((function() {
    var currentLocalKey = "__CLKZB__STORAGE__KEY__";
    var currentLocal = localStorage.getItem(currentLocalKey);
    var currentLocalObject;
    if (currentLocal === null) {
        currentLocalObject = {};
    } else {
        currentLocalObject = JSON.parse(currentLocal);
    }
    return {
        getRawObj: function() {
            return currentLocalObject;
        },
        /**
         * 获取元素
         * @param key 要获取的值的key
         * @param defaultValue 若不存在相应的key,则应该返回的默认值,默认为undefined
         */
        getItem: function(key, defaultValue) {
            if (defaultValue === void 0) {
                defaultValue = undefined;
            }
            var value = currentLocalObject[key];
            if (value) {
                return value;
            } else {
                return defaultValue;
            }
        },
        /**
         * 设置元素
         * @param key 要设置的key
         * @param value 要设置的值内容
         */
        setItem: function(key, value) {
            currentLocalObject[key] = value;
        },
        /**
         * 保存数据到localStorage
         */
        save: function() {
            localStorage.setItem(currentLocalKey, JSON.stringify(currentLocalObject));
        },
        /**
         * 移除元素
         * @param key 要移除的key
         */
        removeItem: function(key) {
            currentLocalObject[key];
        },
        /**
         * 清空元素
         */
        clear: function() {
            currentLocalObject = {};
        }
    };
})());

用户评论