I struggle a lot with that one, I hate my hesitation time on that topic when coding.
When I think about it, it feels like self variables should be avoided here are some reasons (from my perspective):
That being said, in some situation (even if you should normally avoid it) you might be a situation where many inputs are required by your method, at some point passing arguments starts to feel ridiculous.
In conclusion, try to apply a rule you follow or you will be stuck in a mixed approached like me which leads to dirty code :s