lodash.js
降低 array、number、objects、string 等等的使用難度從而讓 JavaScript 變得更簡單。非常適用於:遍歷 array、object 和 string;對值進行操作和檢測;創建符合功能的函數。
常用拷貝
_.clone(value):淺拷貝。淺拷貝只是對指針的拷貝,拷貝后兩個指針指向同一個內存空間。
_.cloneDeep(value):深拷貝。深拷貝不但對指針進行拷貝,而且對指針指向的內容進行拷貝,經深拷貝后的指針是指向兩個不同地址的指針。
_.defaults(object, [sources]):只對比第一層。給對象添加字段,保持原來字段的值。
_.defaultsDeep(object, [sources]):遞歸對比到最里層。給對象添加字段,保持原來字段的值。
PS:原生Object.assign無法實現深拷貝
Object.assign:合並多個JavaScript對象(第一個參數是目標對象,后面的都是源對象,assign方法將多個原對象的屬性和方法都合並到了目標對象上面,如果在這個過程中出現同名的屬性(方法),后合並的屬性(方法)會覆蓋之前的同名屬性(方法)。)