鑑於以下代碼的新的數組:在陣列中按字符串元素的參考串
var old_Array =["One","Two","..."];
var len = old_Array .length;
var new_Array =[];
for(var i=0;i<len;++i)
{
new_Array.push(old_Array [i]); // ----- [1]
}
線後[1]new_Array
填充有字符串。
- 是每個元素實際上是在
old_Array,
字符串元素引用或複製每個字符串元素? - 是否JavaScript解釋器/編譯器優化線 - [1]通過 在
old_Array
每個字符串元素的推引用?
只有通過引用傳遞對象,纔會複製類似字符串的基元。 –
@PatrickEvans感謝您的快速答覆。但JavaScript引擎優化該代碼行嗎?因爲該字符串對象的內存分配已經存在於old_Array中了......我們是否可以傳達編譯器,我們需要在那裏進行優化......而不是每個元素的深度複製或淺拷貝 – Buddhika
想想old_Array是否有大量的字符串元素。許多複製操作將會發生。 – Buddhika