(function(){ var x = c = b = {a:1} })()console.log(x) // err: x is not definedconsole.log(c, b) // {a:1}, {a:1}这么诡异的行为是因为赋值语句的毛病吗,b和c都被放到全局去了。求真相!!
2 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
因为你没在IIFE这个作用域里定义b和c,那么查询时会去上层作用域找变量,如果一直找到全局作用域里都没有,那么他们默认会被赋值给window对象,就像下面
window.b = window.c = {a:1}
添加回答
举报
0/150
提交
取消