猿问

JS 简单的模块加载原理、求指教

我想学习下模块化加载器的核心原理,现在已经可以动态加载文件和防止重载,但目前卡在回调函数接收参数这一步了,烦请各位高手给指点一二、、、谢谢。
例如:
文件A.js
require(["依赖"],function(依赖){
//此处是如何拿到依赖返回值的?
});
文件B.js
define(function(){
//此处的返回结果如何让A拿到?
})
我整明白动态加载模块后执行回调函数了,但我不知道这个参数咋传过去的,回调函数如何获得模块的返回结果,请问他们之间的关联中间键是什么?若能给个简单demo就万分感激啦、、、文字描述下原理也行,谢谢了。
慕容森
浏览 326回答 2
2回答

冉冉说

define实现://全局模块变量constmoduleResult={}functiondefine(module){moduleResult[filepath]=module()}require实现:functionrequire(dependenceList,callback){callback(...dependenceList.map(dependence=>moduleResult[dependence]))}只有原理,没考虑其他东西

aluckdog

正常调用第二个参数就行了啊。functionrequire(list,callback){//加载list,得到结果,加载啊缓存啊什么的//constresult1=eval('xx1.js')//constresult2=eval('xx2.js')callback(result1,result2)}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答