建立自己的程式碼程式庫

來源:互聯網
上載者:User

        程式碼程式庫:顧名思義,就是放代碼的倉庫。在Javascript若大的一個倉庫中,我們可以開闢自己的一個小倉庫,存放自己編寫的代碼。那如何開闢自己的小倉庫呢,它有什麼意義呢。下面談談我的理解。
1、建立程式碼程式庫

         大家編程的時候,應該會遇到這樣的問題,比如去空格,向某個元素後面插入一個元素,瀏覽器的某些相容等問題;它們出現的頻率很高,解決的方法卻是相同的(函數相同)。在這種情況下如果我們仍然在寫重複的代碼,是不是就有些太過機械化了呢。這讓我想到了“物件導向的思想”------>把相同的東西抽出來放到單獨的類中,用的時候可以通過繼承或調用以解決問題,這樣實現了代碼的複用,提高了編程效率。在這裡我們就可以利用程式碼程式庫,來解決代碼上面重複問題。
2、建立命名空間

         在建立自己程式碼程式庫之前,我們往往會先開闢一塊自己的空間,也就是所謂的命名空間;然後再存放那些常用的代碼。

        大家都知道,命名空間可以解決命名衝突的問題。在這裡之所以先建立它:當然也是有原因的,呵呵下面就聽我細細道來:

        我們知道物件導向編程中出現多個同名函數,根據參數個數和傳回型別決定實現那個函數,很好的實現了功能的擴充,這就是所謂的重載。然而在JavaScript也可以出現多個同名函數,不同的是它總是執行最後一個,前面的被忽略掉;也就是說Javascript中存在的是虛假的重載,而並非真正意義上的重載。這樣就可能會導致應該實現的功能,沒有實現的現象。所以我們就引入命名空間,避免函數的重名來解決功能被覆蓋的問題。

        因為自己對自己空間的東西了如指掌,空間內命名重複的現象幾乎可以杜絕;也不用擔心與外面的函數重名,因為他們的命名空間不同。
3、執行個體:自己的程式碼程式庫

function(){window['HXJ']={}//註冊命名空間(實質就是給window對象添加屬性'HXJ',這個屬性時一個對象)//函數function func1(){alert("HelloWorld");        }window['HXJ']['func1']=func1;//向命名空間HXJ中註冊func1函數(實質就是給HXJ對象添加方法)     //函數function func2(){alert('你好');}    window['HXJ']['func2']=func2;//向命名空間註冊func2}

涉及到的知識點:

1)window['HXJ']={}

這就是我申請了一個命名空間,其實就是給window對象添加了一個屬性:屬性名稱即命名空間名,屬性值是一個對象。

也可以寫成:window.HXJ=New Object();

2.     window['HXJ']['func1']=func1

就是給HXJ對象添加了一個方法;也可以寫成,window.HXJ.func1=function(){};

3.    調用方法執行

HXJ.func1(),  自訂屬性和方法與其他的屬性和方法一樣,window可以省略

4.    命名空間,解決了重名的問題。

5.    整個代碼的包含在一個匿名函數內部,在瀏覽器載入頁面時JS代碼就會執行,這樣就保證了代碼載入完畢之後,命名空間建立完畢。
4、知識小結:

注意:

          命名空間名不要太福士化,以免命名空間名相同。

優點:

          通過命名空間建立程式碼程式庫,降低耦合性:代碼更加靈活,複用性更強,問題更加簡單。

          這裡也體現了物件導向的思想,但可不要忘記Javascript只是基於物件導向呦。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.