Asked Aug 8th, 2017 7:59 AM 407 1 1
  • 407 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
  • 407 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)

Ken Minh @minhken207
Oct 1st, 4:55 AM

1 ANSWERS


Answered Aug 8th, 2017 8:17 AM
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
Ngoc Vu @ngocvt3010
Aug 8th, 2017 8:28 AM

(y)

0
| Reply
Share
Vinh Nguyen @vinhnguyen
Aug 8th, 2017 8:38 AM

(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