gpt4 book ai didi

javascript 如何 "dereference"变量的内容用作变量名称?

转载 作者:行者123 更新时间:2023-12-03 02:43:28 24 4
gpt4 key购买 nike

我想减少使用 XMLHttpRequest() 从服务器获取信息的 I/O 开销或ActiveXObject()视情况而定,通过创建一个通用函数来执行提取,然后使用 sessionStorage.<variable> 存储提取的数据。 。问题是,我事先并不知道变量名是什么,而且我故意不想知道。

我在想是否有某种方法可以“取消引用”变量,就像我们在BASH中可以轻松做到的那样,例如,这将是微不足道的。例如,如果获取的数据位于 newData 中,并且从中获取数据的文件名位于 dataFile 中,并且如果取消引用语法为 $(<variableName>) ,然后可以编写这样的代码来存储和获取数据:

//Store the data:
sessionStorage.$(dataFile) = newData;

//Fetch the data:

var storedData = sessionStorage.$(dataFile);

明白了吗? ...好吧,现在,我实际上该怎么做?!

...我能看到的唯一其他方法非常笨拙 - 制作数组,一个有名称,另一个有值 - 一定有一种更简单的方法! TIA。

最佳答案

一如既往,很高兴访问 docs第一的。您可以看到,sessionStorage(如 localStorage 或 Map)根本没有任何属性(除了指向内部内存的隐藏属性,但那是另一回事),而是通过其 get设置方法:

 sessionStorage.set("a name", "a value");

但是 session/localStorage 还提供全局 getter/setter,因此理论上可以这样做:

  sessionStorage.name = "value";

如果键名称是动态的,可以使用括号表示法:

   sessionStorage[aName] = aValue;

但是,他们甚至没有在文档中提到它,因此这个功能既没有得到广泛支持,也不是一个好的编码风格。

关于javascript 如何 "dereference"变量的内容用作变量名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com