You might not like it, or the library (I don't write JS on purpose, so no opinion), but it's right there in the README.
My mental model of assign was backwards, and it took me a while to comprehend why their implementation would be data-last.
So, the data is the object that is being modified? And the idea is it lets you write stuff like this more easily:
const addStuffToObject = stuff -> object -> assign({ "some_stuff": stuff }, object); const addWeirdStuff = addStuffToObject("weird stuff"); const weirdObj = addWeirdStuff({ "foo": "bar" });
If you have a function isEqualTo(a, b), you can curry(isEqualTo, 5) and filter with it.
`assign` could be used in the same way for assigning/overwriting the same field in an array of Objects, and so on.
My mental model of assign was backwards, and it took me a while to comprehend why their implementation would be data-last.
So, the data is the object that is being modified? And the idea is it lets you write stuff like this more easily: