export default (storage) => { if (!storage) return const skey = (key) => '' + key return { /** * 获取 * @param {string} key key * @param {any} defaultValue defaultValue */ get (key, defaultValue) { try { return JSON.parse(storage.getItem(skey(key))) || defaultValue } catch (error) { return defaultValue } }, /** * 保存 * @param {string} key key * @param {any} val 值 */ save (key, val) { if (val === undefined || val === null) return this.remove(key) storage.setItem(skey(key), JSON.stringify(val)) }, /** * 获取 所有key */ keys () { return Object.keys(storage) }, /** * 删除 * @param {string} key key */ remove (key) { storage.removeItem(skey(key)) }, /** * 清空 */ clear () { storage.clear() } } }