# Flowchart for JavaScript's this

**URL:** <https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768>\
**Category:** web dev\
**Created:** [September 2, 2021, 12:59pm UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768 "2021-09-02T12:59:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![senocular](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/senocular/32/7217_2.png) [@senocular](https://forum.kirupa.com/u/senocular)\
**Post date:** [September 2, 2021, 12:59pm UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/1 "2021-09-02T12:59:16Z")

</div>

I’ve seen a few of these before but most only covered the basics. I thought I’d take a stab at it and try to make one that was a little more comprehensive. Here is the result:

 ![this_in_js](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/2X/3/33d0211ea7624b3c19aec5d73d9834dc055411d2.png)

For the most up-to-date version, see: [A Flowchart for JavaScript's this | senocular.github.io](https://senocular.github.io/articles/js_this_flowchart.html)

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [September 2, 2021, 5:02pm UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/2 "2021-09-02T17:02:02Z")

</div>

Wow. This is impressive.

---

<div class="post-metadata">

**Author:** ![krilnon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/krilnon/32/34_2.png) [@krilnon](https://forum.kirupa.com/u/krilnon)\
**Post date:** [September 2, 2021, 11:53pm UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/3 "2021-09-02T23:53:25Z")

</div>

It’s amazing, but missing a “this is Sparta” branch…

(Oh and some interesting spellings of “containing”.)

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [September 3, 2021, 2:37am UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/4 "2021-09-03T02:37:22Z")

</div>

@senocular - do you want to share your diagram on Twitter and I will retweet it? 🙂

---

<div class="post-metadata">

**Author:** ![senocular](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/senocular/32/7217_2.png) [@senocular](https://forum.kirupa.com/u/senocular)\
**Post date:** [September 3, 2021, 3:07am UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/5 "2021-09-03T03:07:49Z")

</div>

Nice catch! I’ll update those contooning typos (some obvious copy pasta usage happening).

---

<div class="post-metadata">

**Author:** ![senocular](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/senocular/32/7217_2.png) [@senocular](https://forum.kirupa.com/u/senocular)\
**Post date:** [September 3, 2021, 3:11am UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/6 "2021-09-03T03:11:08Z")

</div>

I don’t tweet, but you’re welcome to share it.

---

<div class="post-metadata">

**Author:** ![steve.mills](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/steve.mills/32/14961_2.png) [@steve.mills](https://forum.kirupa.com/u/steve.mills)\
**Post date:** [September 3, 2021, 6:56am UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/7 "2021-09-03T06:56:08Z")

</div>

You should be on the TC39 committee… 🙂

---

<div class="post-metadata">

**Author:** ![senocular](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/senocular/32/7217_2.png) [@senocular](https://forum.kirupa.com/u/senocular)\
**Post date:** [September 4, 2021, 2:24pm UTC](https://forum.kirupa.com/t/flowchart-for-javascripts-this/648768/8 "2021-09-04T14:24:46Z")

</div>

Made a minor update to include [class static blocks](https://github.com/tc39/proposal-class-static-block) which have recently made it to stage 4 (the final stage) of the proposal approval process and will be in the next version of the spec.
