所以我有:
var something = function () { return 6}
var foo = new something();
var arr = []
var arr2 = []
我arr2.push(foo)
和arr.push(foo)
后台会发生什么?是foo重复并放在2个地方? foo只是foo,数组中的内容是对foo的引用吗?
感谢。
答案 0 :(得分:7)
编辑:我误读了。因为您使用new
调用函数,所以您创建了一个新对象。任何对象都通过引用传递。
var something = function () { return 6}
var foo = new something();
typeof foo
是object
,因此在这种情况下,它会通过引用传递。
非常确定 foo
是重复的,因为它是基元而不是对象。
答案 1 :(得分:1)
数组中的内容是对同一个实例的引用。这可以使用例如chrome javascript console ...
轻松检查
正如您所看到的,将新成员x
添加到arr1[0]
会使其显示在arr2[0]
上。