# 模拟实现一个 localStorage

const localStorageMock = (function() {
  let store = {}
  return {
    getItem: function(key) { return store[key] || null },
    setItem: function(key, value) { store[key] = value.toString() },
    removeItem: function(key) { delete store[key] },
    clear: function() { store = {} },
  }
})()

Object.defineProperty(window, 'localStorage2', {
  value: localStorageMock
})

localStorage2.setItem('test', 'test')
console.log(localStorage2.getItem("test"))  //test
localStorage2.removeItem('test')
console.log(localStorage2.getItem("test"))  //null
localStorage2.setItem('test', 'test')
localStorage2.clear()
console.log(localStorage2.getItem("test"))  //null

以上结果只是基础的api实现,但是没有考虑持久化存储。如果需要持久化的话,就要考虑cookie、indexDB等。