Cho em hỏi chút điểm khác nhau giữa _.assign / _.extend / _.merge trong Lodash là gì vậy?
Hiện tại em mới cài lodash của một project nhỏ nhỏ. Em thấy lodash có cung cấp các function assign
, merge
, extend
.
Cách dùng của các function này đều giống nhau và đều ra một kết quả chung. Vậy thực chất điểm khác biệt của 3 hàm này là gì vậy ạ?
Mọi người giải thích giúp em với. (huhu)
1 CÂU TRẢ LỜI
_.extend là alias của _.assign, 2 hàm này giống nhau. Điểm khác nhau là _.assign và _.extend sẽ overwrite giá trị undefined, còn _.merge thì không.
_.assign ({}, { a: 'a' }, { a: undefined }) // => { a: undefined }
_.merge ({}, { a: 'a' }, { a: undefined }) // => { a: "a" }
Nguồn: https://stackoverflow.com/questions/19965844/lodash-difference-between-extend-assign-and-merge
(y)
(like)
Mình đọc trên documentation của Lodash thì _.extend
là alias của _.assignIn
; _.assign
và _.assignIn
chỉ khác nhau một chút ở việc lựa chọn property của source object. _.assignIn
giống như việc dùng for...in
với object vậy