var foo = {n:1};
(function(foo){
var foo;
console.log(foo.n);
foo.n = 3;
foo = {n:2};
console.log(foo.n);
})(foo);
console.log(foo.n);为什么输出是1 2 3
在函数里面也定义了一个foo
那么变量提升,在函数内部的第一行应该就是var foo;
此时foo为undefined
那么输出也是undefined才是啊