鍍金池/ 問答/HTML5  HTML/ 請教一個立即執(zhí)行函數(shù)中的參數(shù)賦值問題

請教一個立即執(zhí)行函數(shù)中的參數(shù)賦值問題

(function(){
  var  x = c =  b = {a:1}
 })()
console.log(x) // err: x is not defined
console.log(c, b) // {a:1}, {a:1}

這么詭異的行為是因為賦值語句的毛病嗎,b和c都被放到全局去了。
求真相??!

回答
編輯回答
吢涼

因為你沒在IIFE這個作用域里定義b和c,那么查詢時會去上層作用域找變量,如果一直找到全局作用域里都沒有,那么他們默認會被賦值給window對象,就像下面

window.b = window.c = {a:1}
2018年1月24日 22:35
編輯回答
不舍棄

相當于

(function(){
  var  x ;
   c =  {a:1};
   b = {a:1};
 })()

不寫var相當于全局

2017年6月27日 07:16