国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

通過seajs實現JavaScript的模塊開發及按模塊加載

2024-05-06 15:38:17
字體:
來源:轉載
供稿:網友

seajs實現了JavaScript 的 模塊開發及按模塊加載。用來解決繁瑣的js命名沖突,文件依賴等問題,其主要目的是令JavaScript開發模塊化并可以輕松愉悅進行加載。

首先看看seajs是怎么進行模塊開發的。使用seajs基本上只有一個函數“define”

fn.define= function(id,deps, factory) {//code of function…}

使用define函數來進行定義一個模塊,根據 CMD (Common Module Definition)模塊定義規范。一個文件就是一個模塊。所以一個js文件中只有一個define,即一個文件是一個模塊,SeaJS中模塊的概念有點類似于面向對象中的類——模塊可以擁有數據和方法,數據和方法可以定義為公共或私有,公共數據和方法可以供別的模塊調用。

官方實例中,define只傳入一個參數: 一個工廠函數

define(function(require,exports, module) {//code of the module...});

在看參數之前,我們先看看define是如何處理參數的:

fn.define = function(id, deps, factory)

define可以接收的參數分別是模塊ID,依賴模塊數組及工廠函數;

如果只有一個參數,則賦值給factory。

如果有兩個參數,第二個賦值給factory;第一個如果是array則賦值給deps,否則賦值給id。

如果有三個參數,則分別賦值給id,deps和factory。

根據官方實例,建議還是根據官方的來就傳遞一個參數,即只有factory參數,這樣的話模塊id默認為js文件路徑。

在來看看工廠函數的參數:

require, exports, module

require——模塊加載函數,用于記載依賴模塊。通過這個參數來進行對其他模塊的加載。 exports——接口點,將數據或方法定義在其上則將其暴露給外部調用。通過這個參數,來將這個模塊的方法進行暴露 module——模塊的元數據。其是一個對象,有屬性: module.id——模塊的ID。 module.dependencies——一個數組,存儲了此模塊依賴的所有模塊的ID列表。 module.exports——與exports指向同一個對象。

使用factory的參數的使用:

define(function(require,exports, module) {var a = require('./a');//引入a模塊 exports.fun2= function(){alert("fun2");a.dosomething();  } }

使用require對象來進行加載模塊,其實使用正則表達式進行驗證加載的,所以其參數必須是特定的字符串,不能是表達式。

seajs會自動在require的參數中加入".js"來進行加載,即不需要寫上后綴名,但是在某些情況下,seajs不會為其添加“.js”:

1.載入css:    

require("./module1-style.css");

2.路徑中含有“?”: 

require(<a href="http://example/js/a.json?b=func" rel="external nofollow" >http://example/js/a.json?cb=func</a>);            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 正阳县| 河津市| 临武县| 余姚市| 淮滨县| 临邑县| 赞皇县| 深水埗区| 阿拉尔市| 哈巴河县| 元谋县| 安龙县| 清丰县| 上高县| 白山市| 甘泉县| 清丰县| 延安市| 华阴市| 浮梁县| 新和县| 时尚| 射阳县| 天等县| 屯昌县| 保靖县| 茂名市| 南陵县| 衢州市| 曲阜市| 勃利县| 沙河市| 炉霍县| 大石桥市| 盐山县| 丰台区| 普兰店市| 安新县| 余姚市| 武乡县| 赫章县|