javascript - 这个 Javascript 创建了什么类型的对象?

标签 javascript

我正在努力修复生产错误,但我不是 JS 开发人员。在我的分析进一步进行之前,我需要绝对确信我对以下代码行做出了一些正确的假设:

var iVO = {
    "images":{}
};
var thisImage = $(this).data("data");

iVO["images"][thisImage.fileKey] = thisImage;
iVO["images"][thisImage.imageType] = imageType;
iVO["images"][thisImage.uploadReason] = uploadReason;

这是我的假设。如果有任何正确或误导的地方,请指正:

  • iVO 是 JSON 对象数组
  • 每个 JSON 对象都会被赋予 3 个属性(fileKeyimageTypeuploadReason)

我不明白的是 "images" 索引的重要性,iVO["images"] 的值/含义是什么?第一个/外部数组代表什么信息/对象?

最佳答案

iVO 是一个对象文字。它的功能类似于哈希。

iVO["images"] 看起来像数组访问,但在本例中,代码正在访问 iVO 上的 images 属性。最后,它返回 images 指向的内容,即 {},另一个对象字面量。

var thisImage = $(this).data("data") 正在使用 jquery 函数。 The documentation for jQuery.data is herethisImage 是对调用 data

返回的数据的引用

iVO["images"][thisImage.fileKey] = thisImage;

只是设置一个值。第一次访问是访问 iVO 上的 images 属性,它是一个对象文字。从该对象文字中,代码将 thisImage.fileKey 属性(无论是什么,它来自上一行的数据调用)分配为 thisImage.

所以,当你说

iVO is an array of JSON objects

iVO 是一个单个对象文字,其中包含 images 属性下的另一个对象文字。

那个对象字面量中填充了 3 个值。键(属性的命名)取决于 data 调用返回的内容。这些值取决于 thisImage(数据调用的结果)、变量 imageTypeuploadReason

您可以使用调试器单步执行此代码并查看每一步的值。

注意 JSON 在这里不起作用。来自 json.org,“JSON 是一种完全独立于语言的文本格式......”

关于javascript - 这个 Javascript 创建了什么类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290159/

相关文章:

javascript - 强制数字输入有两位小数,并在 React 中始终显示两位小数

javascript - 是否可以使用 Ajax 从 .HTML 文件加载?

javascript - map 位置详细信息以及照片和其他详细信息

javascript - 在 React 中使用从另一个 JavaScript 文件导出的图片时出现问题

javascript - Angularjs 没有可视化输入选择中的第一个选项

javascript - 如何在node.js中的异步方法中处理多个数组

javascript - Chrome 没有选择源 map ,尽管它已启用

javascript - 使用 FormData 进行 fetch()

javascript - 在模态图片下方添加一个DIV框用于描述

javascript - 在 Angular 6 中处理来自第三方 URL 的发布响应。无法发布错误