在實際的基於Vue前端MVVM框架開發的過程中,往往會遇到如下需求:對於某一個從后端獲取到的數據列表,為了方便使用者,往往在需求定義時,需要通過某個字段關鍵詞進行前端快速定位,當沒有輸入關鍵詞時,列表數據需要恢復為初始狀態。
同時,如果對於原數據列表進行過濾必然是不行了,因為不需要過濾時還需要還原數據列表,故而需要中間變量來復制原始列表數據,但是JS中,對於簡單的對象數據復制傳值方式是引用傳遞方式,所以,不論對於哪個數據源進行過濾操作都務必會影響到另一個數據源,進而達不到需求。
此時,使用先序列化(JSON.stringify)再反序列化(JSON.parse)這種方式來深度克隆對象在一般情況下很方便,用這種方式就可以實現以上業務需求。(此方法的缺點就是無法克隆函數以及繼承的屬性)。