var stringValue = "淡淡的"; var anotherStringValue = stringValue; stringValue = "I have changed"; alert(stringValue);// 輸出 I have changed alert(anotherStringValue);// 輸出 淡淡的
此時,anotherStringValue中保存的值會不會也變成“I have changed”?不會。因為
只會影響stringValue的值。但是,確切來講,stringValue = “I have changed”;并不是修改stringValue,而是創建了一個新字符串(相應地,在內存中分配一塊新空間),然后讓stringValue引用該字符串――更像是替換變量的值;原來的字符串呢?因為沒有變量引用它,也就成為垃圾了(當然,垃圾所占用的內存會被回收)。