Javascript 按索引修改数组中的相同对象

Javascript 按索引修改数组中的相同对象,javascript,arrays,Javascript,Arrays,假设我们有一个数组,数组中有两个相同的对象,例如 var myArray = []; myArray.push({id:1, errorMsg: null}); myArray.push({id:1, errorMsg: null}); 为什么当我试图通过索引修改属性errorMsg时,该更改会影响这两个对象。例如 myArray[0].errorMsg = 'its an error'; 数组的元素是引用,它们可能指向同一个对象,所以更改一个引用会反映在两个位置 乙二醇 使用索引修改任何e

假设我们有一个数组,数组中有两个相同的对象,例如

var myArray = [];
myArray.push({id:1, errorMsg: null});
myArray.push({id:1, errorMsg: null});
为什么当我试图通过索引修改属性errorMsg时,该更改会影响这两个对象。例如

myArray[0].errorMsg = 'its an error';

数组的元素是引用,它们可能指向同一个对象,所以更改一个引用会反映在两个位置

乙二醇

使用索引修改任何errorMsg只会更改该索引的值

检查以下示例: var myArray=[{id:1,errorMsg:null}, {id:2,errorMsg:null}, {id:3,errorMsg:null}] myArray[0].errorMsg='这是一个错误'; myArray[2].errorMsg='这是最后一个错误'; 对于i=0;i