//模擬對象 let obj = { numberParams:1, functionParams:() => { console.log('昨天基金全是綠的,只有我的眼睛是紅的'); }, objParams:{ a:1, b:2 } } const newObj = copyObj(obj); ...
//模擬對象 let obj = { numberParams:1, functionParams:() => { console.log('昨天基金全是綠的,只有我的眼睛是紅的'); }, objParams:{ a:1, b:2 } } const newObj = copyObj(obj); //這樣就完成了一個對象的遞歸拷貝 obj.numberParams = 100; //更改第一個對象的指 console.log(newObj.numberParams); //輸出依然是1 不會跟隨obj去改變
//函數拷貝
const copyObj = (obj = {}) => {
//變數先置空
let newobj = null;
//判斷是否需要繼續進行遞歸
if (typeof (obj) == 'object' && obj !== null) {
newobj = obj instanceof Array ? [] : {};
//進行下一層遞歸克隆
for (var i in obj) {
newobj[i] = copyObj(obj[i])
}
//如果不是對象直接賦值
} else newobj = obj;
return newobj;
}
作者: 阿清
鏈接: https://aqingya.cn/articl/80b561a9.html
來源: 阿清的小站
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數湊字數