Local bindings are created anew for every call, and different calls can’t affect on another calls local bindings.
A function that references bindings from local scopes around it is called a closure. This behavior not only frees you from having to worry about lifetimes of bindings but also makes it possible to use function values in some creative ways.