javascript名稱空間例項介紹
在當前的ECMAScript標準中,並沒有名稱空間這個概念,但是有時候在寫類庫的時候,名稱空間這種程式碼組織形式又顯得相當重要,因為它可以有效的組織程式碼,並且無需定義不必要的全域性函式或者變數,下面就通過程式碼例項介紹一下如何在javascript模擬實現名稱空間功能,先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var nameSpace = {}; nameSpace.info = {}; nameSpace.info.Antzone = function(name) { //私有成員 var _name = name; //訪問器 this.getName = function() { return _name; }; this.setName = function(name) { _name = name; }; }; //原型 nameSpace.info.Antzone.prototype = { done:function() { console.log(this.getName()+"分享互助"); } }; var antzone=new nameSpace.info.Antzone("螞蟻部落"); antzone.done();
以上程式碼就是模擬c#或者java中的名稱空間效果。從程式碼中可以可以體會出名稱空間的功效,這樣可以有效的避免一些全域性性變數的或者函式的重名等等其他副作用,組織程式碼也更為遍歷,也便於多庫共存。
補充說明:
上面的程式碼模擬實現名稱空間功效,但是還是不夠完美,因為這個名稱空間的引用實在太冗長了,那麼我們可以給他取一個別名,這樣更為方便一些,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var ns=nameSpace.info; var antzone=new ns.Antzone("螞蟻部落"); antzone.done();
以上程式碼是不是看起更為簡潔一些,在引用相關內容的時候可以節省一些體力。
判斷名稱空間是否存在:
如果當前js程式碼非常龐大的時候,可能會出現名稱空間重複的情況,這往往並不是我們願意看到的,所以最好事先判斷一下指定的名稱空間是否存在,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼if(!nameSpace){ var nameSpace={}; nameSpace.info={} } else{ if(!nameSpace.info){ nameSpace.info={} } }
關於判斷名稱空間是否已存在和生成也可以參閱javascript名稱空間簡單介紹一章節。
相關文章
- javascript名稱空間簡單介紹JavaScript
- javascript名稱空間使用簡單程式碼例項JavaScript
- Python名稱空間例項解析Python
- JavaScript 名稱空間JavaScript
- jquery bind()名稱空間程式碼例項jQuery
- jQuery事件名稱空間簡單介紹jQuery事件
- javascript建立名稱空間簡單介紹JavaScript
- 好程式設計師分享JavaScript名稱空間模式例項詳解程式設計師JavaScript模式
- JavaScript 中的名稱空間JavaScript
- js模擬實現名稱空間簡單介紹JS
- js模擬實現名稱空間功能程式碼例項JS
- 名稱空間
- JAXB名稱空間及名稱空間字首處理
- PHP 名稱空間PHP
- PHP名稱空間PHP
- vuex名稱空間Vue
- jQuery 名稱空間jQuery
- python名稱空間Python
- C++名稱空間C++
- 更改模型名稱空間模型
- 全域性名稱空間
- C++ 名稱空間C++
- Python 名稱空間Python
- PHP 核心特性 - 名稱空間PHP
- Spring名稱空間解析Spring
- 使用名稱空間:基礎
- ros節點名稱空間ROS
- PHP名稱空間概念解析PHP
- JAXB玩轉名稱空間
- Python 的名稱空間Python
- System.Web 名稱空間Web
- Python中名稱空間是什麼?名稱空間生命週期是多久?Python
- SAP UI5 sap.ui.vk 名稱空間內的控制元件介紹UI控制元件
- javascript通過名稱空間放置全域性變數重名JavaScript變數
- System.Security.Cryptography 名稱空間
- c++系列:匿名名稱空間C++
- Objective-C 的名稱空間Object
- system.security.Principal名稱空間