晴明的博客园 GitHub      CodePen      CodeWars     

[js] 浅复制

浅复制

                //改变b则改变a
                var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67];
                var b = a;
                b.sort();
                console.log(a);
                console.log(b);

 

深复制后两者完全不干预,所以slice,concat等生成的复制,并不能复制到深层的数组或对象,所以silce,concat严格来说仍然算是浅复制。

                var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67];
                var b = [];        
                b = a.map(function(e, i, arr) {
                    return e;
                })            

                a.forEach(function(e, i, arr) {
                    b[i] = e;
                });
         
                for (var i = 0; i < a.length; i++) {
                    b[i] = a[i];
                }                        

 

posted @ 2016-02-26 16:02  晴明桑  阅读(119)  评论(0编辑  收藏  举报