如何使用包含Web Storage类型的字符串值调用JS/JQuery中的Web Storage API函数?

How to use a string value containing Web Storage type to call Web Storage API functions in JS/JQuery?

我在 js/jquery 中编写了一个小脚本,用于保存表单字段供用户保存表单并稍后完成,目前我正在使用 sessionStorage 来完成这个没问题,但我想增强脚本以允许开发人员定义他们是想使用本地存储还是会话存储,但我不确定如何去做,因为我在这个 field:P 中仍然是个菜鸟。在我的脑海里,我有这个计划,开发人员可以在其中定义一个属性,让我们在表单标签上说 'data-storage-type',他们可以使用会话或 localStorage 对其进行赋值,然后我可以使用 Jquery 来获取值这样:

value = $(this).attr('data-storage-type');

然后从那里开始节省存储空间,但我对 jquery/js 还是比较陌生,所以我想知道我是否可以调用他们在此变量中定义的存储类型来调用 get 和 setItem 函数内置 Webstorage 的一部分 api.

所以如果值 = "localStorage",我可以这样称呼它吗:

value.getItem(arg);

因为我很确定你不能这样做:

"localStorage".getItem(arg);

有什么方法可以调用它吗?或者有更好的方法来解决这个问题吗?谢谢!

你可以这样做

window[value].getItem(arg);// where value can be 'localStorage' string

或者你可以使用 switch 语句

switch(value) {
  case 'localStorage':
    localStorage.getItem(arg); 
    break;
  case 'sessionStorage':
    sessionStorage.getItem(arg); 
    break;
}