he's right though. there is actually no reason why you should need to add parameters to a call back function when you do this in a object oriented manner.
Except for it using less code and having easier maintainability you mean ?
I've found that a simple list of arguments much "cleaner" and easier to maintain than an object with invisible, undocumented properties passed as an argument. (Especially in this case where there would be a tendancy to use globally defined variables instead of passed parameters)
In the called function you do not have the name of the properties, just the object name. If you have to go back to that function months or years later, you don't have the faintest idea what the name is for the variable/property you need to manipulate because it is not spelled out for you in the argument list. Instead you have to dig around through multiple functions, backtracing to where the the object is initially created. A huge pain in the behind, especially since all the the people who tend to code this way seem to hate commenting their code.
So - in this case - I really don't think you can improve in the simplicity and maintainabilty.