使用過Java、C#的同學對命名空間非常的熟悉,在複雜的系統中會有N多的函數、對象,語言提供的、架構預定義的,這麼多的函數和對象,由於程式設計規範要求起有實際意義的名字,難免會重名發生錯誤調用,而有了命名空間煩惱就沒有了,不但可以分類組織函數與對象,還可以形成隔離,解決重名問題。
使用JavaScript就沒有這麼舒服了,Javascript只有函數作用域,什麼塊兒啊、神馬文件啊統統都認為是一個命名空間的,有時因為一些重名問題導致的錯誤讓人莫名其妙,難以調試解決。
一個簡單的例子
JavaScript有函數的作用域,可以利用這點把自訂的函數寫到一個函數體內,這樣函數內的變數、物件、函數就像在一個命名空間內一樣和外部隔離。
複製程式碼
程式碼如下:
}這樣自訂的alert方法就不會跟window的alert衝突了。
簡單進化
這樣可以是可以,但也有問題,最大的問題在於呼叫方式複雜而醜陋!每次呼叫的時候都要實例化對象,然後呼叫其方法,簡單修改程式碼讓其實現自動實例化。
複製程式碼
程式碼如下:
})(); 這樣寫xxx函數就可以在定義完後自動執行,看起來神奇,其實上面寫法可以拆成這樣
複製程式碼
//function 身體
}
xxx();
美化一下
上面的寫法看起來不錯了,但是函數名稱namespace似乎是多餘的了,可以美化一下
console.log('test');
window.NS=this;
})();
變成了一個立即執行的匿名函數,美化了一些,不過看起來還是怪怪的,對呀,明明是實例化的function,為什麼方法定義不寫到prototype中呢,匿名函數怎麼寫prototype 。 。 。 ,還得動動腦筋
複製碼
;
})();
寫幾個有用的函數
querySelector和querySelectorAll是W3C提供的新的查詢接口,但是名字好長,自己寫個簡單的,innerHTML屬性也常用到,寫個簡單版仿jQuery的html方法
複製程式碼
程式碼如下:
(function () {
var _NS = function () {
_NS.prototype.select = 函數(選擇器,下方){
var context = context || document;
return context.querySelectorAll(selector);
_NS.prototype.isArrayLike=function(obj){
return true; }
var length=obj.length;
return true;
}
_NS.prototype.html = function (obj,value) {
if (typeof value == 'string') {
obj.innerHTML = value;
var length = obj.length;
while (i obj[i].innerHTML = value;
i = 1;
}
} else {
if (!isArray) {
return obj.innerHTML;
} else {
return obj[0].innerHTML;
}
}
}
window.NS = new _NS();
})();
這樣一個有命名空間的簡單JavaScript庫就寫成了,不用擔心命名衝突了,但是用起來很不方便啊,做前端的同學都用過jQuery,人家用起來那叫一個簡單,jQuery是怎麼做的?欲知後事如何,且聽下回分解。

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具