为什么这个函数不能使数组为空?

时间:2017-06-18 14:28:51

标签: javascript javascript-objects

考虑这个代码段,如果它将a的{​​{1}}属性设置为2,为什么不将test设置为null?

b

2 个答案:

答案 0 :(得分:1)

因为test是对对象(特定于数组)的引用,所以基本上是指向数组存储在内存中的箭头。它的值是它对内存中数组的引用。

当你将它传递给函数clear时,a现在拥有一个新的引用,指向内存中的同一个数组,因此修改b属性反映了test的变化。 1}}。两个引用都看到您已更改b属性,因为它们指向同一个数组。

然后将a设置为null。 atest是指向同一数组的单独引用,因此您将a与数组的连接中断,而不是test的连接。 test保持不变。

答案 1 :(得分:0)

  

为什么b = 2添加到数组

因为您在将a设置为null之前已将其添加到数组中。

  

但它不会变为空?

您将a变量设置为null。这不会触及数组的test变量或b属性。