Imagine an HTML element with the ID
#app. You might be used to selecting said element with the
getElementById() methods. But did you know that it's possible to access the element as a property of the
window.app, or just
app? Yeah, this is cool and everything, but I'm here to talk you out of it.
There's a section about this in the HTML specification called Named access on the
Window object. Right at the top, they advise against it:
As a general rule, relying on this will lead to brittle code. Which IDs end up mapping to this API can vary over time, as new features are added to the web platform, for example. Instead of this, use
There's also a good answer on StackOverflow about why you shouldn't do this.
I'm not going to go into detail myself because it's quite complicated and long-winded. I just want to make you aware of this behaviour in case you see it in the wild and wonder what the heck is going on.
Stick to the
I made a YouTube video to go with this post, if you're interested.