Hacker News new | ask | show | jobs
by krptos 3362 days ago
I prefer using `self` rather than `that`, for caching `this`.

Must be because I have a strong python background, but generally I find "self" makes more sense than a wild "that"!

3 comments

I prefer to use a variable name that describes the type of the object in short.

So if my "this" object is actually an AwesomeTableWidget instance, I might do:

  var table = this;
I like the bit of extra documentation it provides... Or maybe this is just a remnant of all the C code I've written over the years, where it's common to have an object pointer as the first argument to a function and it's usually named like this.
you are so much better off if you can avoid using this when writing js. It's as bad as (and as useless) the keyword 'new'
negative votes here are totally unfair. I was pointing it out that the 'this' keyword is dangerous.
Why is it dangerous?
By using `self` you shadow a global variable which is a reference to the current context (window object) in which the code is executed.
Which should be accessed by window.self anyway so it doesn't really matter? There are so many poorly named global variables (top etc) that worrying about shadowing them seems meaningless.
It matters when you are running in workers in which case the window object does not exists
I always found context, i.e. let context = this, to be far more descriptive.
I use me. or if its a jquery object its $me. Probably because of my VB6 background. :-)