It's a little hard to tell what's going on, in part because I think your code didn't translate properly into the Q&A markdown format. You might want to correct that, so that others can provide more accurate help. It might also be helpful to see the context in which the changeHandler is being used, elsewhere in the program.
However... it looks like the overall gist of it is that it looks like changeHandler is a "higher order function" -- i.e. a function that manipulates other functions. In this case, it appears that the changeHandler function is a function that returns another function. So, for example, if you call the changeHandler function with keyName
being "moose", then you'll get back another function that does something with props and "moose".
e.g. something like
mooseChangeHandler = changeHandler("moose")
colorChangeHandler = changeHandler("color")
Then, these more specific functions that you've created can (it appears?) be used as some kind of event handlers to handle events, presumably when something changes, and then they will update the appropriate props ("moose" or "color") as well as do some other computations (computeData()).
For a more principles introduction to higher order functions, I recommend reading a proper tutorial or two. Here's a book chapter that looks decent: https://eloquentjavascript.net/05_higher_order.html
(What's more, if you decide to go on to be a professoinal Javascript programmer, i'd recommend reading the whole book: https://eloquentjavascript.net/ !)