varfoo={n:1};(function(foo){console.log(foo.n);foo.n=3;varfoo={n:2};console.log(foo.n);})(foo);console.log(foo.n);
2 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
这段代码解析的重点在于foo.n=3和varfoo={n:2};。varfoo={n:1};(function(foo){console.log(foo.n);**此处访问的是全局变量**foo.n=3;**相当于修改了全局变量的初始值**varfoo={n:2};**在自执行函数中定义了个局部变量**console.log(foo.n);**先找自己的作用域中是否存在foo.n存在的话打印出来**})(foo);console.log(foo.n);你的代码在js中是如下编译的(建议看下**你不知的JavaScript上卷,保证你对js作用域会豁然开朗**):varfoo={n:1};(function(foo){varfoo;console.log(foo.n);foo={n:2};console.log(foo.n);})(foo);foo.n=3;console.log(foo.n);
添加回答
举报
0/150
提交
取消