javascript阵列推送会发生什么?

Har*_*rry 1 javascript arrays

所以我有:

var something = function () { return 6}

var foo = new something();

var arr = []
var arr2 = []
Run Code Online (Sandbox Code Playgroud)

我愿意arr2.push(foo)arr.push(foo)

后台会发生什么?是foo重复并放在2个地方?foo只是foo,数组中的内容是对foo的引用吗?

谢谢.

med*_*iev 7

编辑:我误读了.因为您在调用函数时new创建了一个新对象.任何对象都通过引用传递.

var something = function () { return 6}

var foo = new something();
Run Code Online (Sandbox Code Playgroud)

typeof fooobject因此在这种情况下,它通过引用传递.

很确定这foo是重复的,因为它是一个原始而不是一个对象.