assign/extend นำแต่ละ property ใน source copy value as-is ไป destination ถ้า property values เป็น objects เอง ไม่มี recursive traversal นี่คือ shallow copying/cloning object ทั้งหมดถูกนำจาก source ไป destination
merge นำแต่ละ property ใน source เช็คว่า property นั้นเป็น object ไหม ถ้าเป็น จะลงไป recursively map child object properties จาก source ไป destination
ตัวอย่าง
let _ = require('lodash'); let destination = { a: { b: 1, c: 2 }, }; let source = { a: { d: 2, c: 3 }, }; console.log(_.merge(destination, source)); console.log(_.extend(destination, source));ผลลัพธ์
{ a: { b: 1, c: 3, d: 2 } } { a: { d: 2, c: 3 } }