Yêu cầu thg 8 8, 2017 7:59 SA 804 1 1
  • 804 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?

Chia sẻ
  • 804 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
thg 10 1, 2019 4:55 SA

1 CÂU TRẢ LỜI


Đã trả lời thg 8 8, 2017 8:17 SA
Đã được chấp nhận
+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

Chia sẻ
Avatar ngocvu @ngocvt3010
thg 8 8, 2017 8:28 SA

(y)

Avatar Vinh Nguyen @vinhnguyen
thg 8 8, 2017 8:38 SA

(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 😄

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí