I find it easiest to make sense of this as follows:
- It’s an implicit parameter of functions (other than arrow functions).
- It’s always provided when we invoke such functions – how depends on how we invoke them.
Demo:
import assert from 'node:assert/strict';
//========== this is an implicit parameter of getThis() ==========