国产探花免费观看_亚洲丰满少妇自慰呻吟_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等。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿尔山市| 南溪县| 新和县| 左权县| 从江县| 金塔县| 富平县| 大悟县| 平昌县| 东辽县| 南召县| 岚皋县| 巴彦县| 西畴县| 白城市| 高州市| 新竹县| 柏乡县| 辽中县| 密山市| 兴业县| 贡嘎县| 得荣县| 宝山区| 东至县| 额济纳旗| 广河县| 遂昌县| 剑河县| 高陵县| 会昌县| 昌宁县| 河池市| 汝南县| 金溪县| 镇沅| 江陵县| 天全县| 微博| 广州市| 麻江县|