JavaScript 对象声明语法 - 变量名作为属性

2024-06-27

JavaScript 为您提供了多种声明对象的方法。当您手头有大部分可用数据时,最方便的(在我看来)如下:

var person = {
    name: 'John',
    age: 23
}; // "object literal syntax"

这个语法的一个奇怪之处在于它与以下语法相同:

var person = {
    'name': 'John',
    'age': 23
}; // "object literal syntax"

也就是说,您可以在属性名称中使用引号或省略引号。

将其与设置单个属性的方式进行比较时,您有两种选择:

person.birthday = "January 12"; // "dot syntax"

or

person['birthday'] = "January 12"; // "array syntax"

“点语法”仅在正确的操作数是实际属性名称时才有效。如果要使用变量作为属性名称,则必须使用“数组语法”,即:

var prop = "birthday";
person[prop] = "January 12";

现在,是否可以在“对象字面量语法”中使用变量作为属性名称?由于引用属性名称并不重要,因此似乎没有明显的方法在那里使用变量。我正在寻找这样的东西:

var prop = "birthday";
var person = {
    name: 'John',
    age: 23,
    (prop): 'January 12'
};

在这里,我使用 (prop) 作为假想语法,用于表示这是一个变量而不是文字字符串。

Thanks.


不,这不起作用,这就是为什么,如果您动态设置属性名称,建议并使用类似数组的表示法。

var k='propertyname';
object[k]="value";

当使用点符号从变量设置索引或属性名称时这是可行的。

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

JavaScript 对象声明语法 - 变量名作为属性 的相关文章

  • MobileSafari 的正确触摸按钮行为

    MobileSafari 通常具有不正确的 HTML 按钮行为 不正确的含义 不像 iOS 原生按钮 正确的按钮行为如下 用户触摸按钮 按钮突出显示 用户将手指拖出按钮 按钮变暗 用户将手指拖回按钮 按钮突出显示 用户将手指拖出按钮并释放
  • 替换文本区域的文字

    我制作了一个 javascript 函数来将文本区域中的某些单词替换为其他单词 但它不起作用 我做了这个 function wordCheck var text document getElementById eC value var ne
  • javascript 可以从父页面访问 iframe 元素吗?

    我的页面上有 iframe iframe 和父页面位于不同的域中 父页面上的 javascript 代码可以访问此 iframe 内的元素吗 如果页面来自不同的域 则不应该这样做 浏览器安全沙箱应该阻止这种类型的访问 当两个页面来自不同的时
  • 计算两列中两个总和的平均值,并将其显示在 JQGrid 的下一列中

    I m using Jqgrid with summery row at grouping level Now I want to know one thing that Is it possible to show average cal
  • Webpack、Sass - 超出最大调用堆栈大小

    我正在为我的 JS 应用程序使用 Webpack 对于样式 我使用 Sass 我的应用程序非常大 所以我使用了很多 mixins 和 includes 在过去的几天里 虽然应用程序的 SASS 数据增长了一些 我多次遇到相同的以下错误 未捕
  • 如何使用 html 标签包装 window.getSelection().getRangeAt(0) 中的文本选择?

    如何从 window getSelection getRangeAt 0 中进行选择并用 HTML 标签 例如 span 或 mark 包围它 我更喜欢直接的 javascript 或 jQuery 解决方案 我可以使用警报输出选定的文本
  • 如何捕获jquery中的任何点击事件[重复]

    这个问题在这里已经有答案了 我有一个按钮 当单击它时 会显示一个带有图像的 div 例如聊天的表情符号面板 如果我再次单击它 div 会隐藏 但我想要做的是 如果 div 已经显示 然后我单击页面的任何其他内容 我想隐藏它 我试过这个 my
  • 防止 Node.js 中的 SQL 注入

    是否有可能以与 PHP 具有防范 SQL 注入的预准备语句相同的方式防止 Node js 中的 SQL 注入 最好使用模块 如果是这样 怎么办 如果不 有哪些例子这可能会绕过我提供的代码 见下文 一些背景 我正在制作一个 Web 应用程序
  • html/js 中从右到左和/或从上到下的文本?

    如何在浏览器中为用户输入创建从右到左和从上到下的文本字段 有没有本地方法可以做到这一点 或者也许有解决方法 从上到下可能像日语或象形文字 对于 RTL 文本字段 您可以使用 HTMLdir属性 如 ime Vidas 已经提到的 或 wit
  • 如何在 Google 地图上旋转叠加图像?

    我正在尝试将一系列叠加层放置到 Google 地图上 我正在跟随地面覆盖层的示例代码 https developers google com maps documentation javascript examples groundover
  • javascript 中的工厂模式与构造函数模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到了关于 javascript 设计模式的教程 虽然教程很好 但它给我留下了很少的问题 正如我所见 工厂和构造函数产生相同的结果
  • 如何在传单地图上显示热图

    我想在我的传单地图上显示热图 我使用了 heatmap jshttps github com pa7 heatmap js https github com pa7 heatmap js但它最终只是显示 未捕获的类型错误 无法分配给只读属性
  • PHP 中的随机排列对象

    如何在 PHP 中对对象进行排序 我试过shuffle 但这需要一个数组 Warning shuffle expects parameter 1 to be array object given in var www index php o
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 汇总异常以保留模块

    我使用一个名为的汇总插件rollup plugin lit css转变 css文件转换成 javascript 模块 该插件非常简单 它本质上只是附加export default到文件 我的汇总配置使用preserveModules and
  • Google Maps API - 调整大小会生成空白区域

    我正在研究一个看起来非常简单的功能 但却引起了一些头痛 我使用 GIS 并将其与 Google 地图集成 其中一位客户要求能够打开一个仅显示地图的单独弹出窗口 打开窗口不是问题 但当我尝试扩展包含地图的 IFrame 的宽度时 为了适应窗口
  • HTML 画布从 getImageData 返回“偏离一些”字节

    我找到getImageDataHTML 画布似乎返回不正确的字节值 我使用以下 Python 代码生成了 1x1 px 图像 from PIL import Image import numpy as np a np array 12 18
  • 如何从 Instagram 的 media_preview 原始数据重新创建预览?

    如果您从 Instagram 的 API 获取 JSON 数据 您会发现media previewkey 其值是一些 Base64 编码的数据 它看起来确实像一些非常小的预览二进制数据 也许是压缩的 Take 这个帖子 https www
  • JavaScript 模板文字稍后替换变量(在知道值之前)

    是否可以在已知值之前以某种方式使用模板文字 JS 模板文字的每个演示都如下所示 var name John var s Hello name 但在现实世界中 模板是在我们知道变量值之前定义的 某处定义了模板 在页面加载时 var s Hel
  • 在用户单击之前图像不会绘制在画布上?

    我使用执行类似以下操作的函数绘制几张图像 context drawImage img width 2 1 height 2 1 width height 我读过 我需要等待图像加载后才能绘制它 如下所示 img onload functio

随机推荐

  • PyCharm:突出显示自定义文件类型

    在 PyCharm 中 是否可以为文件的语法突出显示定义自定义规则 这些规则结合了两种不同语言的语法 一个有点人为的示例 以下文件应被视为 HTML 脚本标记中的文本除外 该文本应被视为 Python 代码 p p br
  • 像win32 SDK编程一样创建android应用程序

    我是android编程的新手 我想创建一个应用程序 我已经为windows提供的词汇增强器 单词提醒 它会在一定的时间间隔弹出来提醒我之前保存的单词 我认为 Android 编程就像使用 Visual Studio 6 或最新版本的 Win
  • 是否可以?相机 API ios [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在应用程序中实现一项功能 当用户
  • 从 Google/Facebook 帐户重新验证用户身份

    因此 我需要创建一个 REST API 来为 IOS 应用程序提供功能 我们允许用户仅使用普通帐户或使用脸书 谷歌登录 我最近一直在阅读 OAuth 我想我了解在我的情况下如何使用 OAuth 的过程 当用户使用脸书 谷歌登录 在我的应用程
  • C语言中如何检查未初始化的指针

    我的计算机科学教授给我们布置了这个作业 基本上我们有这两个未初始化的全局指针 min ptr max ptr 我们正在写这个void spray paint char x int sz char tok char t 函数获取 tok 的值
  • jquery 对于每个具有相似 id 的元素

    我在页面上有很多元素 ID1 ID2 ID3 我想操纵所有元素 有没有更简单的方法来做到这一点 ID each function 您可以使用 选择器 Example div id ID 选择 DOMID属性开头为ID 即 ID1 IDID
  • 在 Alamofire 中快速发送 GET 请求中的 json 对象

    我正在尝试执行一个绑定了 json 对象的 GET 请求 这就是我生成 JSON 对象的方式 let jsonObject String AnyObject ean code type match value 16743799 然后我执行了
  • 为什么没有调用回调?

    我有来自的示例脚本B OP检查 https metacpan org pod B OPCheck SYNOPSIS模块经过修改PL op name to padsv https github com Perl perl5 blob blea
  • 如何在 RxJS 中“等待”两个可观察值

    在我的应用程序中我有类似的东西 this personService getName id concat this documentService getDocument subscribe response gt console log
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 如何将 Filesystem 类的 glob 方法与 StorageFacade 结合使用?

    这涉及到拉拉维尔 5 我可以看到Illuminate Filesystem Filesystem一个方法叫做glob pattern flags 0 不幸的是 这个方法并没有体现在默认的情况下FilesystemAdapter随 Larav
  • Thymeleaf 表更新无需重新加载页面

    我正在使用 thymeleaf 属性渲染数据 但我现在正在实现 搜索 按钮 并且希望在不重新加载的情况下执行此操作 我有属性depatments哪个渲染List
  • 在 OpenGL 中写入深度缓冲区而不进行深度测试(非着色器)

    在OpenGL中 是否可以绘制一系列不检查深度的多边形 因此 考虑到它们的z位置 它们将始终绘制在之前绘制的其他多边形的前面 但与此同时 他们仍然写入深度缓冲区 我想这可以使用着色器来实现 但现在我无法访问它 严格来说不是 从man pag
  • 更新 Knockout JS 映射插件中的子属性

    我遇到了淘汰赛 js 和具有分层视图模型的映射插件的问题 我的视图模型的结构有点像这样 VM members name name 1 volunteering name name 1 volunteering 每个成员都在一个选项卡中 每个
  • 如何在标签中制作文字自动换行

    我想在其中添加文字 a 标签适合固定的 div 但它会破坏 div 并且显示得很丑 CSS3 有一个属性 word wrap break word 看看MDN 自动换行文档 https developer mozilla org en CS
  • Apps 脚本列表项 - 制作项目符号而不是编号?

    我可以使用应用程序脚本中的appendListItem将一堆项目作为编号列表添加到谷歌文档中 有什么方法可以将其从编号更改为项目符号吗 你应该能够使用ListItem setGlyphType https developers google
  • 如何使用silverlight在文本框中创建水印?

    有人可以向我解释如何使用 silverlight 在文本框中创建水印吗 这就是您所需要的 http watermarktextbox codeplex com http watermarktextbox codeplex com
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • JavaScript 对象声明语法 - 变量名作为属性

    JavaScript 为您提供了多种声明对象的方法 当您手头有大部分可用数据时 最方便的 在我看来 如下 var person name John age 23 object literal syntax 这个语法的一个奇怪之处在于它与以下