原因:对象是同一个对象,动态创建对象时,不断对对象赋值,push进数组,数组[obj,obj,obj],所有的obj值相同,因而导致数组中都是同一个对象
talk is cheap,show you the code
错误写法:
var obj = {
id: null,
name: '',
};
var str = [];
for (var i = 0; i < 5; i++) {
obj.id = i;
obj.name = 'name_' + i;
str.push(obj);
console.info(obj);
}
console.info(str);
演示结果:
正确写法:
var str = [];
for (var i = 0; i < 5; i++) {
var obj = {
id: i,
name: 'name_' + i,
};
str.push(obj);
console.info(obj);
}
console.info(str);
演示结果: