W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
更多建議:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
什么是系統(tǒng)
在生活和工作中,我們會(huì)接觸到大量系統(tǒng):自然界生態(tài)系統(tǒng)、計(jì)算機(jī)操作系統(tǒng)、軟件辦公系統(tǒng),還有教育系統(tǒng)、金融系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、理論系統(tǒng)等等。究竟什么是系統(tǒng)呢?
來(lái)看下維基百科的解釋?zhuān)?/p>
簡(jiǎn)言之,系統(tǒng)有兩個(gè)基本特性:
系統(tǒng)由個(gè)體組成。
個(gè)體之間有關(guān)連,按照規(guī)則協(xié)同完成任務(wù)。
系統(tǒng)中的個(gè)體可稱(chēng)之為系統(tǒng)成員,這樣,要構(gòu)建一個(gè)系統(tǒng),最基本層面需要做兩件事:
定義系統(tǒng)成員:確定成員是什么。
約定系統(tǒng)通訊:確定成員之間如何交互,遵循的規(guī)則是什么。
只要把這兩個(gè)問(wèn)題描述清楚,我們就可以構(gòu)建出系統(tǒng)。
模塊系統(tǒng)
Sea.js 是一個(gè)適用于 Web 瀏覽器端的模塊加載器。在 Sea.js 里,一切皆是模塊,所有模塊協(xié)同構(gòu)建成模塊系統(tǒng)。Sea.js 首要要解決的是模塊系統(tǒng)的基本問(wèn)題:
模塊是什么?
模塊之間如何交互?
在前端開(kāi)發(fā)領(lǐng)域,一個(gè)模塊,可以是JS 模塊,也可以是 CSS 模塊,或是 Template 等模塊。在 Sea.js 里,我們專(zhuān)注于 JS 模塊(其他類(lèi)型的模塊可以轉(zhuǎn)換為 JS 模塊):
模塊是一段 JavaScript 代碼,具有統(tǒng)一的基本書(shū)寫(xiě)格式。
模塊之間通過(guò)基本交互規(guī)則,能彼此引用,協(xié)同工作。
把上面兩點(diǎn)中提及的基本書(shū)寫(xiě)格式和基本交互規(guī)則描述清楚,就能構(gòu)建出一個(gè)模塊系統(tǒng)。對(duì)書(shū)寫(xiě)格式和交互規(guī)則的詳細(xì)描述,就是模塊定義規(guī)范(Module Definition Specification)。比如 CommonJS 社區(qū)的 Modules 1.1.1 規(guī)范,以及 NodeJS 的 Modules 規(guī)范,還有 RequireJS 提出的 AMD 規(guī)范等等。
Sea.js 遵循的是 CMD 規(guī)范,會(huì)在接下來(lái)的文檔中詳細(xì)闡述。
延伸閱讀
function / bind 的救贖
繼承與混合,略談系統(tǒng)的構(gòu)建方式