我自己的理解是
foo={n:1}
function test(foo){
var foo
console.log(foo.n);
}
// ==>
foo={n:1}
function test(foo){
var foo
var foo
foo={n:1} // foo=foo
console.log(foo.n);
}
这两个是等价的
所以
foo={n:1}
function test (foo){
var foo
console.log(foo.n);
foo.n = 3;
foo = {n:2};
console.log(foo.n);
}
// ==>
function test (foo){
var foo
var foo
foo={n:1}
console.log(foo.n);
foo.n = 3;
foo = {n:2};
console.log(foo.n);
}
最后一个是3的原因是外部的foo跟内部的foo的指向不同了的原因