Asked Aug 8th, 2017 7:59 a.m. 797 1 1
  • 797 1 1
+8

Cho em hỏi chút điểm khác nhau giữa _.assign / _.extend / _.merge trong Lodash là gì vậy?

Share
  • 797 1 1

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)

Avatar Ken Minh @minhken207
Oct 1st, 2019 4:55 a.m.

1 ANSWERS


Answered Aug 8th, 2017 8:17 a.m.
Accepted
+6

_.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

Share
Avatar ngocvu @ngocvt3010
Aug 8th, 2017 8:28 a.m.

(y)

0
| Reply
Share
Avatar Mango @vinhnguyen
Aug 8th, 2017 8:38 a.m.

(like)

Mình đọc trên documentation của Lodash thì _.extend là alias của _.assignIn; _.assign_.assignInchỉ 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 😄

+4
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.