收到一只叮咚
这段代码解析的重点在于foo.n=3和var foo = {n:2};。var foo = {n:1};(function (foo) { console.log(foo.n);**此处访问的是全局变量** foo.n=3;**相当于修改了全局变量的初始值** var foo = {n:2};**在自执行函数中定义了个局部变量** console.log(foo.n);**先找自己的作用域中是否存在foo.n存在的话打印出来**})(foo); console.log(foo.n); 你的代码在js中是如下编译的(建议看下**你不知的JavaScript上卷,保证你对js作用域会豁然开朗**):var foo = {n:1};(function (foo) { var foo; console.log(foo.n); foo = {n:2}; console.log(foo.n);})(foo);foo.n=3;console.log(foo.n);