X:在 Sub1 中,X 的範圍是 Confuse 的變數 X。根據靜態作用域規則,Sub1 中的 X 尋找是在 Sub1 所嵌套的最近外部作用域中尋找,這裡是 Confuse 的變數 X。
Y:在 Sub1 中,Y 的範圍是 Confuse 的變數 Y。同理,根據靜態作用域規則,Y 尋找的是 Confuse 的變數 Y。
Z:在 Sub1 中,Z 是一個新的局部變數,覆蓋了外部 Confuse 的變數 Z。因此,Sub1 中的 Z 是 Sub1 自己的局部變數,而不是 Confuse 的變數 Z。
當 Sub2 調用 Sub1 時,Sub1 中的變數範圍是根據靜態作用域規則決定的,因此它們的範圍不會受到 Sub2 內部定義的影響。Sub1 中的 X 和 Y 是 Confuse 的變數,Z 是 Sub1 自己的局部變數。
在 Sub1 中:
在 Sub2 中:
調用 Sub2 時,Sub1 中的 X 和 Y 將引用 Confuse 中的 X 和 Y,而 Z 引用 Sub1 自己的局部變數 Z。