3 ms·
> 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 w
by eatonphil 5y ago
> 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`.
- harg 5y agoThe 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.
- eatonphil 5y agoYes! 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.