Function arguments are locally scoped variables.
function foo (x) {
}
foo(1);
is roughly the same as
function foo () {
var x = 1;
}
foo();
not
function foo () {
x = 1;
}
foo();
The argument is closed over when you use an inner function.
Calling the function again creates a new variable in a new scope.