Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量引用问题_Javascript_Reference - Fatal编程技术网

Javascript 变量引用问题

Javascript 变量引用问题,javascript,reference,Javascript,Reference,为什么每次对数组的一个引用进行更改时,它也不会对另一个引用进行更改,尽管这两个引用都指向同一个对象 例如: myArray = new Array(5,5,5); Array2 = new Array(7,7,7); alert(myArray) // still equals 5,5,5,` 通过说newarray(),您正在创建一个与第一个对象无关的全新数组对象。这就像吃了两个苹果。吃一个对另一个没有影响。你想问什么?它仍然等于5,5,5,因为这就是您正在引用的数组!因此,myArray

为什么每次对数组的一个引用进行更改时,它也不会对另一个引用进行更改,尽管这两个引用都指向同一个对象

例如:

myArray = new Array(5,5,5);
Array2 = new Array(7,7,7);
alert(myArray)  // still equals 5,5,5,`

通过说
newarray()
,您正在创建一个与第一个对象无关的全新数组对象。这就像吃了两个苹果。吃一个对另一个没有影响。

你想问什么?它仍然等于
5,5,5
,因为这就是您正在引用的数组!因此,
myArray.toString()
将导致
5,5,5
,这正是您收到的警报


您正在那里实例化两个不同的对象,因此它们的行为符合预期。如果你问的是这样的话,它们永远不会相互影响。

你似乎对参考资料的工作原理有点误解。在您的示例中,您创建了两个不同的对象,并且有两个变量引用这些对象。要使一个变量上的更改反映在另一个变量上,您需要两个指向同一对象的变量,例如:

myArray = new Array(5);
myArray2 = myArray; // Now we have two variables pointing to same object
myArray2[2] = 4;
if (myArray[2] == 4) alert("Same value");
这就是所谓的实例<代码>数组是一个构造函数。您可以使用关键字
new
创建实例。因此,使用
var myArr=new Array(5,5,5)
变量
myArr
是对
Array
构造函数创建(“构造”)的实例的引用

如果字符串、数组和对象也使用创建实例,顺便说一下:

var myArr = [5,5,5],
    myStr = '[5,5,5]',
    myObj = {myArr:[5,5,5]};

为什么myArray=5,5,5?你的问题没有什么意义:你的两个数组不是同一个对象。你能详细解释一下吗?我只是想了解引用值你在声明两个新的数组对象。。。当然,myArray将包含5,5,5。@James,你已经问了7个问题,只接受了1个答案。不到一个小时,你问了一个问题,得到了一些极好的答案。看看大答案的长度和细节,它肯定能回答你的问题,还有更多。人们期望你用一个公认的答案来奖励这些努力。