2010-09-18 142 views
0

在以下示例中,如何修改變量「sizeMod」,它是每個對象的屬性?Javascript - 屬性的另一個對象的屬性?

// Will be created by ids 
var objs = {}; 

// Set up objects 
$.each(ids, function(index, value){ 
    objs[value] = { 
     sizeMod: 0 
    }; 
    objs[value] = { 
     change: function(){ 
      sizeMod += 1; // How do I write this line correctly? 
     } 
    }; 
}); 

回答

1

第二種說法是破壞您的原始對象,其中sizeMod被聲明。

這應該工作(未經測試)

$.each(ids, function(index, value){ 
    objs[value] = { 
     sizeMod: 0, 
     change: function(){ 
      this.sizeMod += 1; // How do I write this line correctly? 
     } 
    }; 
}); 

你可以叫爲

objs['relevantkey'].change(); 
+0

優雅的解決方案。謝謝。 – Matrym 2010-09-18 06:24:01

+0

「this」是否總是引用頂層對象,或者它是否引用嵌套值(根據具有多層的json對象)。 – Matrym 2010-09-18 06:49:48

1

看看這有助於:

. 
. 
. 
objs[value] = { 
    sizeMod: 0 
}; 
objs[value].change = function(){ 
    this.sizeMod += 1; 
} 
. 
. 
. 
相關問題