個人是這麼理解深拷貝和淺拷貝的:就是假設B複製了A,當修改A時,看B是否會發生變化,如果B也跟著變了,說明這是淺拷貝,拿人手短,如果B沒變,那就是深拷貝,自食其力。 一起看看我舉的淺拷貝慄子: 運行結果是:a數組元素跟著b數組改變 在來看看深拷貝的慄子 運行結果:a數組元素未隨b數組改變 ...
個人是這麼理解深拷貝和淺拷貝的:就是假設B複製了A,當修改A時,看B是否會發生變化,如果B也跟著變了,說明這是淺拷貝,拿人手短,如果B沒變,那就是深拷貝,自食其力。
一起看看我舉的淺拷貝慄子:
1 let a=[0,1,2,3,4], 2 b=a; 3 console.log(a===b); 4 a[0]=1; 5 console.log(a,b);
運行結果是:a數組元素跟著b數組改變
在來看看深拷貝的慄子
1 var a = [1, 2, 3]; 2 b = a.slice(0); 3 b[0] = 66; 4 console.log(a,b);
運行結果:a數組元素未隨b數組改變