看看下面的代码,有人能解释一下值是如何在 JavaScript 中传递的吗?
function loadImages() {
for(var sec in images) {
theme = images[sec];
for(var tsec in theme) {
theme[tsec].img = new Image();
theme[tsec].img.src = 'images/'+theme[tsec].src+'.png';
}
}
}
然后在另一个函数中:
function definitionToSpriteDataMapping() {
var result = {};
for(var definition in blocks) {
var sprite = blocks[definition].sprite;
for(var secnm in images) {
section = images[secnm];
for(var spritenm in section) {
if(sprite == spritenm) {
result[definition] = {};
result[definition].img = section.img;
}
}
}
}
return result;
}
为了简单起见,我删掉了一些代码,但它仍然很复杂。基本上有 2 个对象(图像和块)是嵌套的键:值对。在第一块代码中
theme = images[sec];
theme[tsec].img.src = 'images/'+theme[tsec].src+'.png';
在第二行代码中有
section = images[secnm];
result[definition] = {};
result[definition].img = section.img;
在将 .img 添加到“主题”的第一个代码块之前,“图像”中没有 .img。但这似乎反映在第二个代码块中的“图像”中。所有对象都像 JavaScript 中的指针吗?“结果”与“块”的关系是否与“主题”与“图像”的关系相同?如果我从“主题”中删除一个元素,那会反映在“图像”中吗?