这个Javascript正在创建什么样的对象

What kinds of objects is this Javascript creating?

本文关键字:什么样 对象 创建 Javascript 这个      更新时间:2023-09-26

我正在争先恐后地修复生产错误,但我不是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函数。 jQuery.data 的文档在这里。 thisImage是对从调用 data 返回的数据的引用

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

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

所以,当你说

iVO 是一个 JSON 对象的数组

iVO单个对象文本,在 images 属性下包含另一个对象文本。

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

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

注意 JSON 在这里没有发挥作用。 从 json.org,"JSON是一种完全独立于语言的文本格式......"

iVO是一个对象。 此对象具有一个名为 images 的属性,该属性本身也是一个对象。 该对象有 3 个属性,其名称包含在 thisImage 中,我无法根据发布的代码确定其内容。

回答你的最后一个问题,iVO["images"]相当于iVO.images。 它是iVOimages属性。