https://medium.com/@leroyleowdev/javascripts-globalthis-explained-understanding-its-scope-in-relation-to-var-let-and-const-75ebb1e68e3e