为什么需要使用方法来访问localStorage,如:
localStorage.setItem('name', 'content');
允许类似
的APIlocalStorage.name = 'content';
会更容易使用。为什么它只允许字符串?
答案 0 :(得分:3)
允许类似
的APIlocalStorage.name = 'content';
会更容易使用。
确实。如果您愿意,可以使用它代替setItem
。来自the specification:
Storage
对象上支持的属性名称是当前与对象关联的列表中存在的每个键/值对的键。
这样做的缺点是它不能在本机不支持Web存储的浏览器上填充,而setItem
/ getItem
API可以是。
为什么它只允许字符串?
因为这是最简单的事情。简单的API实现起来更容易,更快,更容易测试(请记住,目标是让多个供应商快速支持这一点 - 并且它有效)。如果你需要更丰富的东西,你可以使用JSON或XML或你喜欢的任何其他形式,序列化到字符串和从字符串序列化。就像HTTP一样。
答案 1 :(得分:2)
不一定,您可以这样分配localstorage值,localstorage.name="somename"
会为您提供名称对象,您可以使用localstorage.getItem
或localstorage["name"]
或localstorage.name
访问任何此类名称对象我们获得对象属性的方式。在MSDN links。