我們知道,在js中,當object作為引數傳遞到函式中進行處理後,實際上是修改了傳入的物件本身(或者說是物件的引用),但很多時候我們並不希望函式去修改我們的這些物件引數,這就需要使用到物件的轉殖,我們應該對該物件做乙個轉殖,然後操作這個轉殖的物件,這樣就不會影響我們的原物件了。
不過在js中並沒有物件轉殖功能,因此需要我們自己實現,實現方法也不複雜其實,基本上是做一些屬性複製,我在網上找了一些,但有些實現並不好,如對於array物件轉殖後就成json物件了,並沒有保留原來的陣列方式。不過最後還是找到了乙個很好的轉殖函式,完美實現了js物件的轉殖功能,不論是array物件或者是普通的object,都可以很好的進行轉殖,這個函式使用constructor(函式構造器)進行複製。
具體**如下:
js物件的轉殖
由於js是採用引用傳值的,故修改任何乙個物件,其關聯的物件也會被改變,但很多時候我們只想得到乙個物件的拷貝,而非引用。下面提供了一種實現。不過除非程式中需要,否則要避免操作物件的拷貝,因為這樣會影響效能,造成太多的遞迴呼叫 too much recursive function clone o el...
js深度轉殖物件
用js實現物件轉殖最關鍵的兩點就是 var objclone new this.constructor 和objclone key this key clone 乙個實現相同物件建立,乙個實現深度轉殖。object.prototype.clone function else for var key ...
JS 物件轉殖的方法
1.object.assign 物件淺複製 created by itw zhangdl on 2018 1 10.let obj let obj2 object.assign obj obj.friends.push 4 console.log obj2 2.object.creat 詳情看es6...