到目前为止,我一直试图弄清楚为什么会发生这种情况,但没有结果。 我在页面中使用bootstrap和Jquery。在以下代码之后,在匿名函数内,尝试设置全局范围对象值(mats):
var matData = {
m1: {name: "Mat-1 name", color: '#d8ccb6'},
m2: {name: "Mat-2 name", color: '#502e35'},
m3: {name: "Mat-3 name", color:'#303742'},
m4: {name: "Mat-4 name",color: '#2e3136'},
m5: {name:"Mat-5 name",color: '#47513e'}
};
var mats={
m0: {name: "none",price: 0,color: "transparent"},
m1: {name: "none",price: 0,color: "transparent"},
m2: {name: "none",price: 0,color: "transparent"}
};
var temp1 = matData[matDD]["name"]; //"apple"
var temp2 = matData[matDD]["color"];// "red"
在以下几行之后:
mats[matsK].name= temp1;
mats[matsK].color = temp2;
对象垫将是:
mats={
m0: {name: "apple",price: 0,color: "red"},
m1: {name: "apple",price: 0,color: "red"},
m2: {name: "apple",price: 0,color: "red"}
};
整个对象,每个索引,而不仅仅是matsK将包含temp1和temp2值。它不在循环内。
我已经调试了10个小时,没什么用。 为什么以下代码将对象的每个元素都设置为temp1和temp2?