看下面的代碼,有人可以解釋如何在JavaScript中傳遞值。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;
}
我剪了一些代碼爲簡單起見,但它仍然相當令人費解。基本上有兩個對象(圖片&塊),它們是嵌套的鍵:值對。在的代碼
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中的指針嗎? 「結果」與「主題」與「圖像」具有相同的「塊」關係嗎?如果我從「主題」中刪除元素,會在「圖像」中反映出來怎麼辦?
如果它寫成'i = new Image(); i.img.src ='images /'+ theme [tsec] .src +'。png';主題[tsec] = i;'它會對你更有意義嗎? –