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

首頁 > 網站 > WEB開發 > 正文

簡單模擬js的模塊化依賴

2024-04-27 15:11:33
字體:
來源:轉載
供稿:網友

為了使得js代碼更加規劃,以及更加有結構感。很多大神就開發了一套又一套的js庫。比如requireJs, commonJs, seajs等。

模塊化主要分為AMD以及CMD 2種類型,具體什么含義呢,可以自行百度一下了解,我主要是花費一點時間,模擬一下js的模塊化依賴實現。

(function(global){ //緩存 所有的模塊 var modules = new Object(); //模塊方法的定義實現 var defined = function(moduleName, dependNames, moduleFn){ if(isArray(dependNames)){ var dependModules = resolveDepend(dependNames); if(dependModules != undefined){ modules[moduleName] = moduleFn.apply(undefined, dependModules); } }else{ modules[moduleName] = dependNames.apply(undefined); } }; //調用模塊方法 var use = function(dependNames, fn){ var dependModules = resolveDepend(dependNames); if(dependModules != undefined){ fn.apply(undefined, dependModules); } }; var resolveDepend = function(dependNames){ var dependModules = new Array(); for(var d in dependNames){ var module = modules[dependNames[d]]; if(module == undefined){ console.error("Not Found " + dependNames[d]); return ; } dependModules.push(module); } return dependModules; } //采用閉包形式, 判斷類型方法調用 var typeOf = function(){ var a = Object.PRototype.toString; return function(o){ return a.call(o); } }(); //判斷是否是一個數組 var isArray = function(a){ var typeStr = typeOf(a); return typeStr == "[object Array]" ? true : false; } /**對外暴露接口**/ global.defined = defined; global.use = use; })(window); defined("D", function(){ return function(a, b){ return a + b ; }; }); defined("C", function(){ return function(a, b){ return a - b; } }); defined("B", ["D"], function(D){ return function(a, b){ return D(a, b); }; }); defined("A", ["B", "C"],function(B, C){ return function(a, b, c, d){ return B(B(a, b), C(c, d)) } }); use(["A"], function(A){ console.info(A(1, 2, 4, 3)); }); </script>

這里只是簡單的模擬,真正要達到模塊化框架,還有很多東西需要編寫,比如異步加載js等。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万宁市| 涿鹿县| 克拉玛依市| 平江县| 克东县| 仙游县| 沾益县| 闵行区| 始兴县| 莎车县| 涞源县| 和硕县| 富民县| 左云县| 班戈县| 周口市| 万载县| 岳西县| 庆城县| 临澧县| 昆明市| 梧州市| 永宁县| 二手房| 呼伦贝尔市| 泰州市| 姜堰市| 三河市| 乳源| 宜州市| 衡东县| 绩溪县| 安徽省| 牙克石市| 太和县| 饶平县| 秦皇岛市| 苏尼特右旗| 巴塘县| 凤冈县| 耒阳市|