摘要:簡單封裝檢測是否支持不支持設(shè)置值必須參數(shù),屬性非必須參數(shù),屬性值只能為字符串獲取值必須參數(shù),屬性只能為字符串移除值必須參數(shù),屬性只能為字符串移除所有判斷類型必須參數(shù),判斷的值過濾值必須參數(shù),過濾的值使用方式
localStorage、sessionStorage ES6簡單封裝:
class Store { constructor (store) { // 檢測是否支持localstorage if (!store) { console.log("不支持localStorage") return } this._store = store } /** * @function 設(shè)置值 * @param {string} _k 必須參數(shù),屬性 * @param {any} _v 非必須參數(shù),屬性值 */ setItem (_k, _v) { if (!this._store) return let kType = this.getType(_k) if (kType === "string") { this._store.setItem(_k, this.filterValue(_v)) } else { console.log("key只能為字符串!") } } /** * @function 獲取值 * @param {string} _k 必須參數(shù),屬性 */ getItem (_k) { if (!this._store) return let res let kType = this.getType(_k) if (kType === "string") { res = this._store.getItem(_k) } else { console.log("key只能為字符串!") } return res } /** * @function 移除值 * @param {string} _k 必須參數(shù),屬性 */ removeItem (_k) { if (!this._store) return let kType = this.getType(_k) if (kType === "string") { res = this._store.removeItem(_k) } else { console.log("key只能為字符串!") } } /** * @function 移除所有 */ clear () { if (!this._store) return this._store.clear() } /** * @function 判斷類型 * @param {any} para 必須參數(shù),判斷的值 */ getType (para) { let type = typeof para if (type === "number" && isNaN(para)) return "NaN" if (type !== "object") return type return Object.prototype.toString .call(para) .replace(/[[]]/g, "") // eslint-disable-line .split(" ")[1] .toLowerCase() } /** * @function 過濾值 * @param {any} val 必須參數(shù),過濾的值 */ filterValue (val) { let vType = this.getType(val) let nullVal = ["null", "undefined", "NaN"] let stringVal = ["boolen", "number", "string"] if (nullVal.indexOf(vType) >= 0) return "" if (stringVal.indexOf(vType) >= 0) return val return JSON.stringify(val) } } class LocalStorage extends Store { constructor (store) { // eslint-disable-line super(store) } WX_USER_ID = "WX_USER_ID" } class SessionStorage extends Store { constructor (store) { // eslint-disable-line super(store) } WX_SSO_TITLE = "WX_SSO_TITLE" } const lStorage = new LocalStorage(window.localStorage || localStorage) const sStorage = new SessionStorage(window.sessionStorage || sessionStorage) export { lStorage, sStorage }使用方式:
import { lStorage, sStorage } from "./storage.js" lStorage.setItem(lStorage.WX_USER_ID, ["val"]) lStorage.getItem(lStorage.WX_USER_ID) // ["val"]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105237.html
摘要:咱們?yōu)榧磳懙膸炱饌€(gè)名字為,開始就是如下的樣子啦處理傳進(jìn)來的參數(shù)我們需要在類的構(gòu)造函數(shù)中接收參數(shù),并覆蓋默認(rèn)參數(shù)。 前言 常見的js插件都很少使用ES6的class,一般都是通過構(gòu)造函數(shù),而且常常是手寫CMD、AMD規(guī)范來封裝一個(gè)庫,比如這樣: // 引用自:https://www.jianshu.com/p/e65c246beac1 ;(function(undefined) { ...
摘要:咱們?yōu)榧磳懙膸炱饌€(gè)名字為,開始就是如下的樣子啦復(fù)制代碼處理傳進(jìn)來的參數(shù)我們需要在類的構(gòu)造函數(shù)中接收參數(shù),并覆蓋默認(rèn)參數(shù)。 前言常見的js插件都很少使用ES6的class,一般都是通過構(gòu)造函數(shù),而且常常是手寫CMD、AMD規(guī)范來封裝一個(gè)庫,比如這樣: // 引用自:https://www.jianshu.com/p/e65... (function(undefined) { use s...
摘要:咱們?yōu)榧磳懙膸炱饌€(gè)名字為,開始就是如下的樣子啦復(fù)制代碼處理傳進(jìn)來的參數(shù)我們需要在類的構(gòu)造函數(shù)中接收參數(shù),并覆蓋默認(rèn)參數(shù)。 前言常見的js插件都很少使用ES6的class,一般都是通過構(gòu)造函數(shù),而且常常是手寫CMD、AMD規(guī)范來封裝一個(gè)庫,比如這樣: // 引用自:https://www.jianshu.com/p/e65... (function(undefined) { use s...
摘要:咱們?yōu)榧磳懙膸炱饌€(gè)名字為,開始就是如下的樣子啦復(fù)制代碼處理傳進(jìn)來的參數(shù)我們需要在類的構(gòu)造函數(shù)中接收參數(shù),并覆蓋默認(rèn)參數(shù)。 前言常見的js插件都很少使用ES6的class,一般都是通過構(gòu)造函數(shù),而且常常是手寫CMD、AMD規(guī)范來封裝一個(gè)庫,比如這樣: // 引用自:https://www.jianshu.com/p/e65... (function(undefined) { use s...
摘要:更新時(shí)間這個(gè)問題是實(shí)例內(nèi)單組件的必須返回一個(gè)對象如下為什么要一個(gè)數(shù)據(jù)對象呢官方解釋如下必須聲明為返回一個(gè)初始數(shù)據(jù)對象的函數(shù),因?yàn)榻M件可能被用來創(chuàng)建多個(gè)實(shí)例。 更新時(shí)間:2018-07-29 1.data functions should return an object // 這個(gè)問題是 Vue 實(shí)例內(nèi),單組件的data必須返回一個(gè)對象;如下 export default {...
閱讀 924·2021-09-29 09:35
閱讀 1266·2021-09-28 09:36
閱讀 1538·2021-09-24 10:38
閱讀 1087·2021-09-10 11:18
閱讀 647·2019-08-30 15:54
閱讀 2513·2019-08-30 13:22
閱讀 1977·2019-08-30 11:14
閱讀 712·2019-08-29 12:35