日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

构建自己的js库

發(fā)布時間:2024/8/26 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 构建自己的js库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、背景

web前端開發(fā)人員經(jīng)常會用到一些現(xiàn)成的js庫(框架)。框架的使用增加了代碼的模塊化和可復用性,最主要的是屏蔽了瀏覽器之間差異性的實現(xiàn),使得代碼更加簡潔,框架使用者只需要將注意力放在業(yè)務的實現(xiàn)上而不必為底層繁瑣的實現(xiàn)感到頭疼。
目前主流的js框架有很多,各有側(cè)重,我們通常只會用到其中一小部分子功能。如果為了局部功能而引入一個龐大的框架,顯然有點大材小用而且會增加瀏覽器的加載負擔,浪費網(wǎng)絡帶寬,影響用戶體驗。因此,很多時候定義我們自己的js庫非常的有必要,我們只需要根據(jù)項目需求構(gòu)建出個性化js庫,這樣的js庫將會變得相當精簡。
實習導師要求在實習之前學習一下如何構(gòu)建一個自己的類庫,任務使然。

  結(jié)論:基于以上三個原因,筆者大概學習了如何構(gòu)建一個自己的js庫,以及在構(gòu)建的過程中應該注意的一些事項。

二、構(gòu)建js庫是需要注意的問題

  1、會不會和其他的庫產(chǎn)生沖突

    比如jQuery,Ext,Prototype等符號

  2、不要版本檢測。

    不依賴于瀏覽器的樣式,和瀏覽器的版本,而是依賴于腳本語言js的強大。

  3、使用命名空間。

這里所說的命名空間不是真正的命名空間,只是能在腳本內(nèi)營造的一個屬于自己的小空間的技巧而已。

----命名空間的唯一性:

如果多個方法的名字相同,則默認使用最后一個方法。不過通常要避免這種做法。

一般命名為IC (ItCast)

----命名空間不共享:

庫中的任何函數(shù)只在庫中使用,保證自己使用$()函數(shù),使用js小技巧。

(function(){

//運行的代碼。

})(); //后面的括號表示運行,定義匿名函數(shù)之后直接運行。前面的括號表示分隔符,定義函數(shù)。

三、構(gòu)建一個簡單的js庫實例

這里給出了一個簡單的js例子。

 1 <script>
 2     (function(){  
 3                   
 4                 //自己的命名空間,外部無法訪問。  
 5                 //定義了自己的函數(shù)$()  
 6                 Function $()  
 7                 {  
 8                     //代碼。  
 9                     //測試是否成功。  
10                     alert("你好!");  
11                 }  
12                 //構(gòu)造自己的命名空間。  
13                 Window['myNameSpace']={}  
14                 //將自己的命名空間注冊到window,并且注冊自己的$函數(shù)。  
15                 Window['myNameSpace']['$']=$;  
16        })();  
17 </script>

然后再html文件中對我們之前構(gòu)建簡單的js庫進行測試。

<html>  
<head>  
    <title>js庫測試</title>  
    <script type="text/javascript" src="myNameSpace.js"></script>  
</head>  
/*調(diào)用自己建立的 $()方法。window可以省略*/  
<body onload="window.myNameSpace.$();">  
</body>  
</html>

需要注意的是,調(diào)用js庫中的方法時,window可以省略(由js作用域鏈的相關知識可知)。所以我們可以定義一個名為myExtJs的庫,并通過這樣的方式來調(diào)用。eg:myExtJs.myLoad()。

用過ExtJs的朋友,看到這里應該會感到很熟悉,ExtJS的就是以Ext作為頂級命名空間,并將該命名空間作為window對象的一個屬性。以此類推,我們可以繼續(xù)通過往自定義命名空間中添加屬性的方式,創(chuàng)建命名空間。

總結(jié)

以上是生活随笔為你收集整理的构建自己的js库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。