全局變量是window對象的屬性;而局部變量是調用對象(call object)的屬性,當執行一個函數時,函數的參數和局部變量是做爲調用對象的屬性來存儲的,用一個徹底獨立的對象來存放局部變量使js能夠防止局部變量覆蓋同名的全局變量的值。函數
執行環境:js解釋器每次開始執行一個函數時都會爲那個函數建立一個執行環境(execution context),顯然執行環境就是全部js代碼段執行時所在的環境。全部js函數都運行在本身獨有的執行環境中,並且具備本身的調用對象,在調用對象中定義了局部變量。每一個執行環境都有與其關聯的做用域鏈。做用域鏈式一個對象列表或對象鏈。對象