日期:2014-05-16  浏览次数:20381 次

Js数组 是怎么做类似java中的深拷贝的
var   old   =   new   Array([1,2],[6,7]);
var   new   =   old;
                new[1][1]   =   100;
document.write(old[1][1]);

输出为:   100

tt改变了,temp也改变了
    我的本意是:   new改变了,但是new不能变。

java里面有深拷贝的概念,在js是怎么实现的

------解决方案--------------------
<SCRIPT LANGUAGE= "JavaScript ">
<!--
Array.prototype.clone=function()
{
var a = [];
for(var i=0; i <this.length; i++)
{
if( "object "==typeof(this[i]) && "undefined "!=typeof(this[i].length))
a[i] = this[i].clone();
else
a[i] = this[i];
}
return a;
}
var old = new Array([1,2],[6,7]);
var news = old.clone();
news[1][1] = 100;

alert(old[1][1]);
//-->
</SCRIPT>