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

How come localStorage isn't accesable as an object?

本文关键字:对象 访问 localStorage 不能 为什么      更新时间:2023-09-26

为什么需要使用像

这样的方法来访问localStorage ?
localStorage.setItem('name', 'content');

允许类似

这样的操作的API
localStorage.name = 'content';

更容易处理。为什么它只允许字符串呢?

允许类似

这样的操作的API
localStorage.name = 'content';

会更容易处理。

。如果你愿意,你可以用它代替setItem。来自规范:

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

这样做的缺点是它不能在不支持web存储的浏览器上显示,而setItem/getItem API可以。

为什么它只允许字符串?

因为这是最简单的事情。简单的api更容易、更快地实现,也更容易测试(记住,我们的目标是让多个供应商快速支持这一点——而且它成功了)。如果您需要更丰富的内容,您可以使用JSON或XML或任何其他您喜欢的形式,对字符串进行序列化。

不一定,您可以像这样分配本地存储值,localstorage.name="somename"将给您名称对象,您可以使用localstorage.getItemlocalstorage["name"]localstorage.name以任何这样的方式访问我们获得对象的属性。