> but the global `this` you captured still has the same identity as the new 
> reference.

Interesting, I never knew that. Do you have a code sample to show how
to detect or prove that?

On Sat, Sep 21, 2019 at 9:05 PM Isiah Meadows <[email protected]> wrote:
>
> If you look in the proposal's repo, they explain the rationale behind the 
> identifier:
> https://github.com/tc39/proposal-global/
>
> Here's a short summary: `globalThis` is the same value you get from 
> evaluating `this` in the global scope of a sloppy mode script. This is subtly 
> different than a "global object", which JS has no concept of. There's other 
> nuances involved, too.
>
> Concretely, for one example, `globalObject` was explicitly rejected because 
> in HTML, the global `this` is a proxy of `window`, not the `window` object 
> itself. The `window` proxy delegates all operations to the current global 
> `window`, as you might expect. But here's where things get interesting: 
> during navigation, the window changes, yet the global `this` does not, so if 
> you define a property, capture the global `this`, and navigate, the property 
> you just defined will disappear, but the global `this` you captured still has 
> the same identity as the new reference.
>
> This file in particular explains the naming side of it in detail:
> https://github.com/tc39/proposal-global/blob/master/NAMING.md It covers the 
> other suggested names here indirectly.
>
> And do keep in mind much of TC39's members are non-native speakers 
> themselves, including one of the proposal's biggest champions/fans, Matthias. 
> So it's not like that concern goes unnoticed - if anything, it gets accounted 
> for without them even thinking about it. It might also explain why it's 
> `array.entries()`, `map.entries()`, and similar when the more proper English 
> name would've been `array.pairs()`, `map.pairs()`, and so on: entries are 
> really what values from `value[Symbol.iterator]()` represent, and non-native 
> speakers sometimes misuse "entries" as if it were synonymous with "pairs". 
> Contrast this with Underscore's `_.pairs`, named by a native English speaker 
> back in 2012, long before ES6 was a thing, and it stood as precedent for 
> having `coll.entries()` for various collections.
>
> On Sat, Sep 21, 2019 at 14:12 #!/JoePea <[email protected]> wrote:
>>
>> I know it may be too late for this, but I imagine `globalThis` can bring 
>> confusion to beginners, especially ESL beginners.
>>
>> Things like `globalObject`, `systemGlobal`, or `globalEntity` would've been 
>> more intuitive; they make sense in plain English.
>>
>> Well anyways, have a good weekend!
>>
>> - Joe
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to