javascript變量主要分為兩類:
I. 全局變量
II. 局部變量(函數內的變量)
I. 全局變量: 定義在方法體外地所有變量都是全局變量, 還有即使在方法體內使用的變量, 但是未用var關鍵字聲明的也都是全局變量。
ll. 局部變量: 定義在方法體內的、 使用var關鍵字聲明的變量。 (即使跟全局變量名一樣, 他也會覆蓋全局變量。)
註:
全局變量就是在當前頁面起作用, 一個頁面當中的iframe也不管用, 隻在一個頁面當中有效。
如果JS代碼很多的時候, 我們都要引用JS腳本文件, 但是有可能出現兩個腳本當中的全局變量名是一樣的, 這會出現錯誤。 因為面對這些問題JS不會報錯, 所以我們需要使用命名空間來解決這些沖突。
javascript命名空間:
random.js
[javascript]
// 通過 ID 獲取 Element 對象
function $(id) {
return document.getElementById(id);
}
// 顯示對應 ID 的對象的節點類型名字
function myMethod(id) {
alert($(id).nodeName);
}
<span style="color:#cc0000;">// 這是對外的接口
window['myNamespace']= {}
window['myNamespace']['$'] = $;
lt;/span>
上面這段代碼有兩個方法, 紅色的部分就是所謂的命名空間,為上面說是所謂的命名空間? 因為不是上面新的一種機制或者技術。 如果仔細觀察會發現
window['myNamespace'] = {}
其實就是一個定義對象的語法, 我們在window對象裡添加瞭一個屬性(屬性名:myNamespace), 這個屬性就是一個對象。 第二行代碼
window['myNamespace']['$'] = $;
window['myNamespace']就是一個對象, 我們要給這個對象再添加一個屬性['$'], 這個屬性就是方法$, 所以我們引入random.js文件之後, 在頁面想要使用random.js中的$()方法的時候, 使用window.myNamespace.$就可以瞭。 也可以直接用myNamespace.$, 省略瞭window。
當然還有很多實現命名空間的辦法, 還可以直接用一個對象包住(把所有的方法都定義在對象之內), 這樣在外界如果不通過對象名.方法名, 這種格式的話就無法訪問裡面的方法, 體現瞭面向對象的封裝性。
摘自 從此愛上蒲肉格蕾銘.-^