Javascript 通过引用为数组元素赋值

Javascript 通过引用为数组元素赋值,javascript,arrays,Javascript,Arrays,我有一个包含两个对象元素的数组。这里有两个函数function1(myArray)和function2() fuction1(myArray):在这个函数中,我将对象的第一个元素分配给一个新变量,然后将一个新对象分配给这个变量,但它对实际数组没有任何影响 fuction1(myArray):但在第二个函数中,我还将第一个元素分配给一个新变量,然后将一个新字符串分配给对象的值,它对实际数组有效 我对这些过程是如何发生的略知一二,但我不能确切地理解它是如何工作的 函数功能1(myArray){ v

我有一个包含两个对象元素的数组。这里有两个函数
function1(myArray)
function2()

fuction1(myArray)
:在这个函数中,我将对象的第一个元素分配给一个新变量,然后将一个新对象分配给这个变量,但它对实际数组没有任何影响

fuction1(myArray)
:但在第二个函数中,我还将第一个元素分配给一个新变量,然后将一个新字符串分配给对象的值,它对实际数组有效

我对这些过程是如何发生的略知一二,但我不能确切地理解它是如何工作的

函数功能1(myArray){
var firstElement=myArray[0];
第一元素={
新:“新元素”
};
}
函数功能2(myArray){
var firstElement=myArray[0];
firstElement.new=“newElement”;
}
var arr=[
{y:“yElement”},
{x:“xElement”}
];
功能1(arr);
console.log(arr);//数组元素不变
功能2(arr);

console.log(arr);//数组元素值在第一种情况下发生了更改
var firstElement=myArray[0]
首先设置变量
firstElement
,其值为
myArray[0]

然后,在
firstElement={new:“newElement”}中将同一变量设置为不同的对象

数组ins的内容没有更改,因为第二条语句仅更改局部变量
firstElement
的值


在第二种情况下,您首先要做同样的事情<代码>var firstElement=myArray[0]

然后,通过添加一个值为
firstElement.new=“newElement”的属性来操作对象

由于您使用的是
firstElement.SomeThing
,因此您仍在处理获得的同一对象,并且数组已更改


函数功能1(myArray){
var firstElement=myArray[0];//firstElement包含myArray[0]中的对象
第一元素={
新:“新元素”
};//firstElement现在包含另一个对象,与myArray[0]不再有任何关系
}
函数功能2(myArray){
var firstElement=myArray[0];//firstElement包含myArray[0]中的对象
firstElement.new=“newElement”//firstElement仍然是对对象的引用,并且添加了一个属性
}  
函数功能3(myArray){
myArray[0]={
新:“新元素”
};
}
var arr=[
{   
y:“yElement”
},
{
x:“xElement”
}
];
功能1(arr);
console.log(arr);//数组元素不变
功能2(arr);
console.log(arr);//数组元素值已更改
功能3(arr);

console.log(arr);//数组元素值已更改
非常感谢您的回答。在第一种情况下,为firstElement变量分配了一个不同的对象,它随包含新对象的引用而更改。@sadullahzolfqar确实是