模块加载原理(第二种)
Posted littleboyck
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块加载原理(第二种)相关的知识,希望对你有一定的参考价值。
var kModule = (function(){ var modules = {} ,config = {} ,define = function(deps,factory){ typeof deps == ‘function‘ && ( factory = deps, deps = [] ) if(!Array.isArray(deps)){ deps = [deps]; } var exports = function(name,impl){ if(!modules[name]){ kModule[name] = modules[name] = impl; } } typeof factory == ‘function‘ && factory.apply(factory,[exports]) } ,require = function(deps,handle){ typeof deps == ‘function‘ && ( handle = deps, deps = [] ) if(!Array.isArray(deps)){ deps = [deps]; } for(let i = 0; i < deps.length; i++){ deps[i] = modules[deps[i]] } handle.apply(handle,deps); } return { define:define, require:require, }; })(); kModule.define(function(exports){ var initTable = function(){ return "初始化表格模块"; } var tableImpl = { initTable:initTable } exports(‘table‘,tableImpl) }); //第一种调用方式 kModule.require(‘table‘,function(){ var table = kModule.table alert(table.initTable()); }); //第二种调用方式 kModule.require(‘table‘,function(table){ alert(table.initTable()); });
以上是关于模块加载原理(第二种)的主要内容,如果未能解决你的问题,请参考以下文章
spring框架总结(03)重点介绍(Spring框架的第二种核心掌握)