最近写程序发现,JavaScript数组赋值时是采用的引用赋值,那我如果不想原数组的值被改变应该怎么办?

解决方案 »

  1.   

    简单点的方法就是这样
    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);
      

  2.   

    最笨的方法
    <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>