最近写程序发现,JavaScript数组赋值时是采用的引用赋值,那我如果不想原数组的值被改变应该怎么办?
------解决方案--------------------
简单点的方法就是这样
- JScript code
Array.prototype.clone = function(){ var tmp = []; for(var i = 0, len = this.length; i < len; i++){ tmp.push(this[i]); } return tmp; } var a = [1,2,3]; var b = a.clone(); a.push(4); alert(a); alert(b);
------解决方案--------------------
最笨的方法
<script type="text/javascript">
var a=[1,2,3,4];
var b=[];
for(var i=0;i<a.length;i++){
b[i]=a[i];
}
b.push(10);
alert(a);
alert(b);
</script>
------解决方案--------------------
如果连数组元素都不能使用引用,那就需要进行深层的复制