News for hackers. Stuff that matters.
Re:HTML event handler attributes: down the rabbit hole by eatonphil on Wednesday April 27, 2022 @08:13AM (#31178930)
> To avoid the whole "what is the `event` variable and where does it come from?" problem they could use

Why avoid something when you can instead learn how it works? :)

> Also, the author's example comparing `x === window.x` as evidence that it's insufficient to know if the in-scope variable is the same as the one on the window is wrong.

I think you misunderstood it.

When you pass an object as an argument to a function it's passed as a reference. It would have been clearer if I used an object (I was trying to simplify the example) but my code is still illustrating what I meant it to even if I substituted `window.x = {a:2}` for `window.x = 1`.

Re:HTML event handler attributes: down the rabbit hole by harg on Friday April 29, 2022 @05:03AM (#31203013)
The point I was trying to make is that your second example doesn't prove or disprove anything. You're simply comparing a primitive value. 1 will always equal 1, regardless of which variable it's stored in.

Your first example is enough to conclude that the locally scoped `event` is the same as the one on the window object, due to the pass-by-reference nature of JS objects. The fact that comparing the two returns true means they must be the same object.

Re:HTML event handler attributes: down the rabbit hole by eatonphil on Friday April 29, 2022 @07:18AM (#31203738)
Yes! But you're still missing the point. There is a big difference because it's a matter of which api you're using.

window.event may be a deprecated api but the thing that sends the event to the string event handler isn't. It doesn't matter that they're the same object it's about apis.