鉴于以下代码的新的数组:在阵列中按字符串元素的参考串
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