語法作用域 Lexical scope
又稱 靜態作用域
當宣告語法時,就已經決定其作用域
而常見作用域有 全域環境、區域環境
1 | function test() { |
此時 name 的作用域是在函式內,全域環境並沒有 name 參數
1 | function sayHi() { |
除了變數以外,函式也會受到語法作用域影響
動態作用域
變數的作用域在函式調用時才決定
綜合說明
以下範例
1 | var value = 1; /* 全域變數 */ |
- 靜態作用域:
value = 1 - 動態作用域:
value = 2