I disagree, that it is mostly preference. I agree that it has been implemented both ways, but once you get into the scalability question, it becomes clear that passing in an argument cuts down on the logical branching. If you have both an enable and a disable function as your pattern, then for components you need to reason about state for during runtime will need an if/else which can get out of hand quickly when you are driving multiple component states.
I disagree, that it is mostly preference. I agree that it has been implemented both ways, but once you get into the scalability question, it becomes clear that passing in an argument cuts down on the logical branching. If you have both an enable and a disable function as your pattern, then for components you need to reason about state for during runtime will need an if/else which can get out of hand quickly when you are driving multiple component states.