經典物件轉殖模型 深度轉殖

2021-10-10 19:35:02 字數 752 閱讀 7315

我們都知道 json.parse(json.stringfy(obj)) 可以深度轉殖乙個物件,但是有乙個缺陷,不能轉殖**物件
/**

* 轉殖的方法

* @param obj

* @returns

*/function

clone

(obj)

else

if(obj instanceof

object

)else

}/**

* 轉殖物件

* @param obj

* @returns }

*/function

cloneobj

(obj)

;// 獲取物件裡面的所有屬性,包括物件裡面的屬性

let objattr = object.

getownpropertynames

(obj)

;for

(let i =

0; i < objattr.length; i++

)return res;

}/**

* 轉殖陣列

* @param array

* @returns

*/function

clonearray

(array)

return arr;

}

深度轉殖物件

有時,我們需要對乙個物件進行複製,如下列要求 1.使用遞迴來實現乙個深度轉殖,可以複製乙個目標物件,返回乙個完整拷貝 2.被複製的物件型別會被限制為數字 字串 布林 日期 陣列 object物件。function isobject obj function cloneobject obj 判斷物件型...

js深度轉殖物件

用js實現物件轉殖最關鍵的兩點就是 var objclone new this.constructor 和objclone key this key clone 乙個實現相同物件建立,乙個實現深度轉殖。object.prototype.clone function else for var key ...

C 物件深度轉殖

有基礎的開發者都應該很明白,物件是乙個引用型別,例如 object b new object object a b 那麼a指向的是b的位址,這樣在有些時候就會造成如果修改a的值,那麼b的值也會跟隨著改變 a和b是同乙個引用記憶體位址 我們想要a和b都是各自互不影響的,那麼只能是完全地新建乙個新的物件...