en.javascript.info/1-js/06-advanced-functions/03-closure/2-closure-variable-access/solution.md
Ilya Kantor 964ed57c42 closure
2019-12-26 14:59:57 +03:00

9 lines
412 B
Markdown

The answer is: **Pete**.
The `work()` function in the code below gets `name` from the place of its origin through the outer lexical environment reference:
![](lexenv-nested-work.svg)
So, the result is `"Pete"` here.
But if there were no `let name` in `makeWorker()`, then the search would go outside and take the global variable as we can see from the chain above. In that case the result would be `"John"`.