为什么localStorage不能作为对象访问?

时间:2015-07-18 09:28:01

标签: javascript

为什么需要使用方法来访问localStorage,如:

localStorage.setItem('name', 'content');

允许类似

的API
localStorage.name = 'content';

会更容易使用。为什么它只允许字符串?

2 个答案:

答案 0 :(得分:3)

  

允许类似

的API
localStorage.name = 'content';
     

会更容易使用。

确实。如果您愿意,可以使用它代替setItem。来自the specification

  

Storage对象上支持的属性名称是当前与对象关联的列表中存在的每个键/值对的键。

这样做的缺点是它不能在本机不支持Web存储的浏览器上填充,而setItem / getItem API可以是。

  

为什么它只允许字符串?

因为这是最简单的事情。简单的API实现起来更容易,更快,更容易测试(请记住,目标是让多个供应商快速支持这一点 - 并且它有效)。如果你需要更丰富的东西,你可以使用JSON或XML或你喜欢的任何其他形式,序列化到字符串和从字符串序列化。就像HTTP一样。

答案 1 :(得分:2)

不一定,您可以这样分配localstorage值,localstorage.name="somename"会为您提供名称对象,您可以使用localstorage.getItemlocalstorage["name"]localstorage.name访问任何此类名称对象我们获得对象属性的方式。在MSDN links

中找到