簡單的依賴加載器實(shí)現(xiàn)

為了驗(yàn)證閉包的學(xué)習(xí),有必要實(shí)現(xiàn)一個(gè)簡單的依賴加載器。

代碼實(shí)現(xiàn)

var myModules=(function () {
    
    //保存所有定義的模塊
    var modules={};

    /**
     *定義新模塊,接收3個(gè)參數(shù)
     *name:模塊名
     *deps:模塊依賴的其他模塊
     *impl:模塊的定義
    **/ 
    function define(name,deps,impl) {
        
        //遍歷依賴每一項(xiàng),取出每個(gè)模塊
        for (var i=0;i<deps.length;i++) {
            deps[i]=modules[deps[i]];
        }
        //將新模塊存儲(chǔ)進(jìn)模塊池,并注入依賴
        modules[name]=impl.apply(impl,deps);
    }
    //從模塊池中取出模塊
    function get (name) {
        return modules[name];
    }
    //暴露api
    return {
        define: define,
        get: get
    }
})()

使用

myModules.define('bar',[],function () {
    function hello (who) {
        //代碼體
    }
    return {
        hello:hello
    }
})

myModules.define('foo',['bar'],function (bar) {
    functin hello2 () {
        //代碼體
    }
    return {
        hello2:hello2
    }
})

var bar=myModules.get('bar');
var foo=myModules.get('foo');
  • 內(nèi)容轉(zhuǎn)自《你不知道的Javascript》
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,023評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 《奧術(shù)魔法的派系》 奧術(shù)魔法的派系 - 綜述 (缺失中) 奧術(shù)魔法的派系 - 防護(hù)系 <由技藝高超之大法師安斯雷姆...
    秘計(jì)閱讀 3,498評(píng)論 2 3
  • 大學(xué)畢業(yè)的這一年,我參加過幾場(chǎng)婚禮,見證了從校園愛情走入婚姻的幸福,看著新郎新娘擁抱哽咽的時(shí)候,我也會(huì)一個(gè)人默默地...
    王姑娘sunshine閱讀 699評(píng)論 1 4
  • 正月十五是元宵,佳節(jié)送來喜氣洋洋,我們當(dāng)?shù)氐奈幕浅蕴鸷?,賞花燈、猜字謎、放煙花、真的是熱鬧非凡啊!
    章智豪閱讀 259評(píng)論 0 0

友情鏈接更多精彩內(nèi)容