Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Arrays - Fatal编程技术网

javascript在数组推送上会发生什么?

javascript在数组推送上会发生什么?,javascript,arrays,Javascript,Arrays,因此,我: var something = function () { return 6} var foo = new something(); var arr = [] var arr2 = [] 我做arr2.push(foo)和arr.push(foo) 背景中发生了什么?foo是否复制并放在两个位置?foo只是foo吗?数组中的内容是对foo的引用吗 谢谢。编辑:我看错了。由于使用new调用函数,因此创建了一个新对象。任何对象都是通过引用传递的 var something = fu

因此,我:

var something = function () { return 6}

var foo = new something();

var arr = []
var arr2 = []
我做
arr2.push(foo)
arr.push(foo)

背景中发生了什么?foo是否复制并放在两个位置?foo只是foo吗?数组中的内容是对foo的引用吗


谢谢。

编辑:我看错了。由于使用
new
调用函数,因此创建了一个新对象。任何对象都是通过引用传递的

var something = function () { return 6}

var foo = new something();
typeof foo
是一个
对象
,因此在本例中,它通过引用传递

var something = function () { return 6}

var foo = new something();

非常确定
foo
是重复的,因为它是一个原语而不是一个对象。

编辑:我读错了。由于使用
new
调用函数,因此创建了一个新对象。任何对象都是通过引用传递的

var something = function () { return 6}

var foo = new something();
typeof foo
是一个
对象
,因此在本例中,它通过引用传递

var something = function () { return 6}

var foo = new something();

非常确定
foo
是重复的,因为它是一个原语而不是一个对象。

数组中的内容是对同一事物实例的引用。这可以很容易地检查使用例如铬javascript控制台


如您所见,将新成员
x
添加到
arr1[0]
时,它出现在
arr2[0]
上,数组中的内容是对某个对象的同一实例的引用。这可以很容易地检查使用例如铬javascript控制台


如您所见,将新成员
x
添加到
arr1[0]
将其显示在
arr2[0]

谢谢,如果它是一个对象该怎么办?将传递对该对象的引用。谢谢,如果它是一个对象该怎么办?将传递对该对象的引用。