使用字符串访问变量

2023-12-03

我目前有一个 Javascript 函数,它使用字符串来引用对象名称并访问其属性。我目前正在使用 eval() 来获得所需的效果,我知道这是非常非常错误的。这是我目前如何实现我想要的目标的示例:

var stringToObjectRef = function() {

    var myTestVar = "myTestObject";
    var myTestObject = { 'item1' : 100, 'item2' : 12, 'item4' : 18 };

    var myValue = eval(myTestVar + '.item1');

    alert(myValue);

}();

我尝试过使用 [myTestVar].item1 之类的东西,但这返回未定义。实现此目的的正确语法是什么?

提前致谢。


如果你说的是item1部分,您正在寻找:

myValue = myTestObject["item1"];

不需要eval。 (几乎从来没有。)

如果您正在谈论获得myTestObject使用“myTestObject”字符串的变量,您想要重构代码,这样您就不会这样做,而不是使用eval。不幸的是,函数内用于符号解析的变量对象无法直接访问。重构可以只显式地使用一个对象:

var stringToObjectRef = function() {

    var objects = {};

    var myTestVar = "myTestObject";
    objects.myTestObject = { 'item1' : 100, 'item2' : 12, 'item4' : 18 };

    var myValue = objects[myTestVar].item1;

    alert(myValue);

}();

题外话,我不记得确切的原因,但如果你要像这样立即执行该匿名函数,你需要将函数表达式放在括号中:

var x = (function() { return 5; })();

而不是

var x = function() { return 5; }();

同样,我不记得为什么,也不记得是因为流行解释器中的实现错误还是语法的实际要求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用字符串访问变量 的相关文章

随机推荐

  • 字典中元素的配对组合,不重复

    在Python中 我有一个像这样的字典 pleio firstLine enf1 54 set enf2 48 free enf3 34 set enf4 12 free secondLine enf5 56 bgb enf6 67 kio
  • int[ ] 中未分配的值

    想知道在 C 中未分配的整数的值是多少int 通常是 Example int arr 5 arr 1 2 arr 3 4 for int i 0 i lt 5 i cout lt
  • 将 UTC 转换为当前区域设置时间

    我正在从 Web 服务下载一些 JSON 数据 在此 JSON 中 我有一些日期 时间值 一切都以 UTC 时间为准 如何解析此日期字符串 以便结果 Date 对象位于当前区域设置中 例如 服务器返回 2011 05 18 16 35 01
  • jQuery UI Datepicker:当今天也被选中时不突出显示

    我正在使用jQuery 日期选择器选择日期 它工作正常 除了我想更改 1 个默认行为 当您选择一天时 所选日期会突出显示 我喜欢 当前日期也被突出显示 但使用不同的 css 样式 我也喜欢 但是 如果您选择当天 则突出显示 因为它是当天 因
  • git push 尝试推送 git ls-files 中未列出的文件

    我不小心在我的仓库中提交了一个不必要的大子文件夹 xxxxx 当我在推送时意识到这一点时 我中途停止了推送 然后我使用以下命令从存储库中删除了不必要的文件夹 xxxxx git rm r cached xxxxx 但同时ls files不显
  • Xamarin Forms 和 Azure Easy Tables 同步问题

    我在 Visual Studio 中使用 Azure 作为后端开发 Xamarin Forms 应用程序已经有一段时间了 我遇到了一个非常奇怪的问题 请注意 我正在遵循本文中提到的方法blog 由于某些奇怪的原因 PullAsync 方法似
  • 测试用户角色,VB.NET中的授权属性

    我正在使用 ASP NET MVC 构建网站 我使用 VB 作为编程语言 我有几个问题 1 我创建了一个角色 经理 如何检查用户是否属于该特定角色 现在我正在使用 If My User IsInRole Manager Then Direc
  • 帮助解决Python UnboundLocalError:赋值前引用的局部变量

    我之前已经发布过类似的问题 但是 我想我可能误解了我的问题 所以我可以在这里发布我的原始代码 并寻找有人可以帮助我 我现在真的陷入了困境 非常感谢 from numpy import import math as M initial con
  • Google Scripts:如何调用一个函数在另一个函数完成后运行

    我有一个谷歌脚本 其中有 4 个不同的函数 需要一个接一个地运行 但一个函数可以在前一个函数完成 完成后运行 每个函数所需的时间各不相同 但平均每个函数大约需要 15 20 分钟 每个函数都会完成一个包含大量数据的电子表格 因此我想在触发器
  • 为什么 dagger graph 在 java 中可以工作,但在 Kotlin 中却说缺少 Provides,而我已经提供了?

    将 dagger 接口从 java 转换为 Kotlin 时遇到一些问题 我得到 Dagger MissingBinding java util Map 如果没有 Provides 注释的方法就无法提供 这是我的界面 interface T
  • 仅单击一个时,RecyclerView 第一项和最后一项发生更改

    我正在使用 recyclerview 来显示可以选择的兴趣列表 单击第一个项目也会选择最后一个项目 选择第一项 最后一项也被选中 选择是通过以下代码完成的 Override public InterestViewHolder onCreat
  • 无法将 AVCaptureDevice 与闪光灯一起使用

    对于我认为应该很简单的事情 我遇到了困难 我只想在 iOS 应用程序中拍照时点亮闪光灯 我所有的尝试都失败了或者只成功了 20 这是点亮闪光灯的代码 Here we have captureDevice hasFlash captureDe
  • 如何在 jfreechart、netbeans 中调整此图表的大小?

    我似乎无法操纵图表本身 我无法改变尺寸chartPanel createChartPanel 不断重写为chartPanel javax swing panel 我尝试创建一个方法modificarGrafico 但什么也没有 例子 htt
  • WSO2 ESB 4.8.1 中支持的 XPath 函数

    WSO2 ESB 4 8 1 似乎不支持以下 XPath 函数 escape html uri iri 到 uri 编码为 uri 有谁知道 WSO2 ESB 4 8 1 支持哪些 XPath 函数以及不支持哪些函数 Answer reco
  • 将图像(覆盖)放置在另一个图像(背景)的 x,y 上

    我需要在运行时动态地将图像放置在另一个图像上 精确地位于背景图像的 x y 位置 我有以下详细信息 叠加图像属性 红色 x 58 y 232 h 266 w 431背景图片 黑色 match parent w 1024 h 768 这里 x
  • 训练后如何获取神经网络参数?

    我正在使用 matlab 的神经网络进行分类 我想知道如何存储网络参数 例如 纪元 时间 MSE等 训练后在矩阵中 多谢 打电话时train 第二个返回的参数是培训记录 其中包含有关训练的纪元 时间和其他信息 例如 net tr train
  • 检查未知对象中的对象是否存在的最有效的Javascript方法[重复]

    这个问题在这里已经有答案了 这是我在 Javascript 中经常遇到的事情 假设我有一个这样的对象 var acquaintances types friends billy 6 jascinta 44 john 91 others Ma
  • 詹金斯下的git克隆/ssh

    我使用 stash 作为 git 存储库管理器 stash 使您能够为每个尝试连接和克隆的用户添加 ssh 密钥 我已经为所有 UNIX 用户配置好了 但 Windows 却给我带来了困难 Windows 从机 2008 R2 服务器 上的
  • 自定义视图矩阵的拉伸问题

    我目前正在为我的项目开发自己的二维数学库 以提高我对底层矩阵数学的理解 过去我使用过 GLM 等库 但我觉得它可能值得研究作为一种学习经验 其中大部分都很简单 我的大多数数学课程都与 OpenGL 集成并运行良好 但是我的视图矩阵似乎在窗口
  • 使用字符串访问变量

    我目前有一个 Javascript 函数 它使用字符串来引用对象名称并访问其属性 我目前正在使用 eval 来获得所需的效果 我知道这是非常非常错误的 这是我目前如何实现我想要的目标的示例 var stringToObjectRef fun