/** * cmd 内部定义 * build用 */ // 模块存储 var _modules = {}; function define ( id, deps, factory ) { _modules[ id ] = { exports: {}, value: null, factory: null }; if ( arguments.length === 2 ) { factory = deps; } if ( _modules.toString.call( factory ) === '[object Object]' ) { _modules[ id ][ 'value' ] = factory; } else if ( typeof factory === 'function' ) { _modules[ id ][ 'factory' ] = factory; } else { throw new Error( 'define函数未定义的行为' ); } } function require ( id ) { var module = _modules[ id ], exports = null; if ( !module ) { return null; } if ( module.value ) { return module.value; } exports = module.factory.call( null, require, module.exports, module ); // return 值不为空, 则以return值为最终值 if ( exports ) { module.exports = exports; } module.value = module.exports; return module.value; } function use ( id ) { return require( id ); }