在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ JS 簡單的模塊加載原理、求指教

JS 簡單的模塊加載原理、求指教

我想學習下模塊化加載器的核心原理,現(xiàn)在已經(jīng)可以動態(tài)加載文件和防止重載,但目前卡在回調(diào)函數(shù)接收參數(shù)這一步了,煩請各位高手給指點一二、、、謝謝。

例如:

文件A.js
require(["依賴"],function(依賴){
    // 此處是如何拿到依賴返回值的?
});

文件B.js
define(function(){
    // 此處的返回結果如何讓A拿到?
})

我整明白動態(tài)加載模塊后執(zhí)行回調(diào)函數(shù)了,但我不知道這個參數(shù)咋傳過去的,回調(diào)函數(shù)如何獲得模塊的返回結果,請問他們之間的關聯(lián)中間鍵是什么?若能給個簡單demo就萬分感激啦、、、文字描述下原理也行,謝謝了。

回答
編輯回答
萌小萌

define實現(xiàn):

// 全局模塊變量
const moduleResult = {}

function define(module){
    moduleResult[filepath] = module()
}

require實現(xiàn):

function require(dependenceList, callback){
    callback(...dependenceList.map(dependence => moduleResult[dependence]))
}

只有原理,沒考慮其他東西

2017年10月4日 08:59
編輯回答
神經(jīng)質(zhì)

可以查看一下我的這個文章 seajs和requirejs模塊化開發(fā)

2018年8月29日 18:55
編輯回答
裸橙

正常調(diào)用第二個參數(shù)就行了啊。

function require(list, callback) {
    // 加載list,得到結果,加載啊緩存啊什么的
    // const result1 = eval('xx1.js')
    // const result2 = eval('xx2.js')
    callback(result1, result2)
}
2018年6月11日 03:21