javascript變量、作用域、命名空間 – Javascript教程_JS教程_技術文章 – 程式設計聯盟

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。

當然還有很多實現命名空間的辦法, 還可以直接用一個對象包住(把所有的方法都定義在對象之內), 這樣在外界如果不通過對象名.方法名, 這種格式的話就無法訪問裡面的方法, 體現瞭面向對象的封裝性。

摘自 從此愛上蒲肉格蕾銘.-^

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。