深拷貝 二者之間改變互不影響
1 拷貝後二者之間再也不存在共享關係
2 拷貝以後數據類型不能發生改變,也就是須要判斷是數組的時候,須要進行單獨遞歸的遍歷
3 在繼承的時候,咱們經過原型屬性實現原型對象屬性的繼承,在進行深拷貝的時候,咱們首先須要提出原型對象上的屬性;經過hasOwnProperty
方法來進行篩選;數組
function deepCopy(params) { if(typeof params !== 'object') { console.log('您輸入的不是對象'); return params; } let target = null; if(typeof params === 'object' && params !== null) { target = Array.isArray(params) ? [] : {} for (let key in params) { if(params.hasOwnProperty(key)) { if(typeof params[key] === 'object') { target[key] = deepCopy(params[key]); } else { target[key] = params[key]; } } } } return target; }