我正在努力修复生产错误,但我不是 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 个属性(
fileKey
、imageType
和uploadReason
)
我不明白的是 "images"
索引的重要性,iVO["images"]
的值/含义是什么?第一个/外部数组代表什么信息/对象?
最佳答案
iVO
是一个对象文字。它的功能类似于哈希。
iVO["images"]
看起来像数组访问,但在本例中,代码正在访问 iVO
上的 images
属性。最后,它返回 images
指向的内容,即 {}
,另一个对象字面量。
var thisImage = $(this).data("data")
正在使用 jquery 函数。 The documentation for jQuery.data is here 。 thisImage
是对调用 data
iVO["images"][thisImage.fileKey] = thisImage;
只是设置一个值。第一次访问是访问 iVO
上的 images
属性,它是一个对象文字。从该对象文字中,代码将 thisImage.fileKey
属性(无论是什么,它来自上一行的数据调用)分配为 thisImage
.
所以,当你说
iVO is an array of JSON objects
iVO
是一个单个对象文字,其中包含 images
属性下的另一个对象文字。
那个对象字面量中填充了 3 个值。键(属性的命名)取决于 data
调用返回的内容。这些值取决于 thisImage
(数据调用的结果)、变量 imageType
和 uploadReason
。
您可以使用调试器单步执行此代码并查看每一步的值。
注意 JSON 在这里不起作用。来自 json.org,“JSON 是一种完全独立于语言的文本格式......”
关于javascript - 这个 Javascript 创建了什么类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290159/