JavaScript 函數與變數範圍(Scope)

目錄 : 網頁設計學習課程參考

JavaScript 變數可分為全域(global)變數局部(local)變數兩種。變數如果是在JavaScript 函數之外定義的,就會被視為全域變數。全域變數在網頁執行時會被附加至window物件之下. window物件是JavaScript用來代表瀏覽器開啟的視窗的物件. 變數如果是在JavaScript 函數之內定義的則會被視為局部變數. 局部變數在函數執行完畢之後就會被銷毀, 在該函數之外不能再存取該局部變數. 而全域變影則可在所有函數中存取. 因此對全域變數的使用我們必須較為小心, 如在許多函數中變更某一全域變數, 說不定將來程式會變得較難維護修改, 亦較難除錯. 使用全域變數攜帶資訊至函數中讀取使用是比較好的方式.

範例

在本例子中我們設立一變數x, 並指派其值為3. 因x是在所有函數之外定義的, 因此x為一全域變數.  在函數print_x_global()中我們直接取用全域變數x的值, 使用alert顯示.

在隨後的函數print_x_local()中, 我們另外定義叧外一個變數x. 此處定義的變數x是局部變數, 變數名稱雖然和先前定義的全域變數一樣, 但兩者其實是兩個不同的個體. 在print_x_local()中, 我們把局部變數x設為5, 然後把局部變數設為5, 然後把局部變數x及全域變數x一起顯示.  請注意全域變數x可透過window.x存取.



在Aptana中可清楚全域變數x是位於window物件之下.



接下來我們在函數add_x()中把全域變數x加2,並顯示全域變數x的值.


執行程式後, 可看見print_x_global()顯示全域變數x的值為3,


但print_x_local()則顯示其局部變數x的值為5, 而全域變數x的值為3,


在執行add_x()時, 全域變數x的值被加上2而顯示為5.



PS: 版權所有,侵犯著作權必告.

留言