By making the self reference explicit, you're free to refer to any object by that self reference. Also, such a way of playing with classes at runtime is harder to do in the more static languages - not that's it's. For a language-agnostic consideration of the design decision, see what is the advantage of having this/self pointer mandatory explicit?.
Understanding the Context
To close debugging questions where op omitted a self. I've spent two days in node-gyp hell trying to figure out this self-signed cert in keychain issue i've had, and this is the answer that finally got everything working properly :)