localStorage 对象具有用于读取/写入数据的 get 和 set 方法。
现在我在一些代码中看到,人们可以像使用普通的 JavaScript 对象一样访问存储的数据。
例如:
localStorage['mainColor'] = '#efefef';
Run Code Online (Sandbox Code Playgroud)
显然,这些数据是作为公共财产保存的。但是 get-、set-方法就没有意义了... ?:|
所以我问自己:这些 getter、setter 方法的目的是什么?
本地存储以及其他形式的 Web 存储都遵循Web 存储规范。
在本规范中,定义了一个明确的接口来使用定义此行为的 API。理论上,除了 JavaScript 之外,其他语言也可以使用此 API,这些语言可能无法正确访问这些动态属性,或者在这些语言中使用这些方法更为常见。
JavaScript 中的实际用途:
您可以用来getItem获取与其中一种方法同名的键值。
另外,可能更重要的是,如果该项目不存在,getItem则 和会默默地忽略,这使得在许多情况下使用它们更容易。removeItem
另一个可能的差异,尽管我还没有测试过。规范说:“当调用 setItem()、removeItem() 和clear() 方法时,会在可以访问新存储或删除的数据的其他 Documents 的 Window 对象上触发事件”。所以也许这个事件在你使用时被调用setItem('prop'),但在你使用时却没有被调用['prop']。