版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smalCat/article/details/82015571
// 现代模块机制
var myModules = (function Manager() {
var modules = {};
function define(name, deps, impl) {
//for循环作用是将模块管理器内的相关模块调出来,
// 在管理器的作用域中展现,然后被impl调用,
for (let i = 0; i < deps.length; i++) {
deps[i] = modules[deps[i]];
}
//新的模块放进模块管理器内,同时利用apply方法调用模块的自身,将上下文执行环境绑定到模块
//本身,同时将需要调用的模块,模块名作为参数传入模块。
// deps作为参数,传进新模块impl,使其能够调用模块管理器内的其他模块
modules[name] = impl.apply(impl,deps);
}
function get (name) {
return modules[name];
}
return {
define: define,
get:get
}
}())