多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
为了让同一个模块可以运行在前后端,在写作过程中需要考虑兼容前端也实现了模块规范的环境。为了保持前后端的一致性,类库开发者需要将类库代码包装在一个闭包内。以下代码演示如何将 hello()方法定义到不同的运行环境中,它能够兼容Node、AMD、CMD以及常见的浏览器环境中: ~~~ ;(function(name, definition){ //检测上下文环境是否为AMD或CMD var hasDefine = typeof define === 'function', //检查上下文环境是否为Node hasExports = typeof module !== 'undefined' && module.exports; if(hasDefine){ // AMD环境或CMD环境 define(definition); }else if(hasExports) { //定义为普通Node模块 module.exports = definition(); }else{ //将模块执行结果挂载window变量中,在浏览器中this指向window 对象 this[name] = definition(); } })('hello',function(){ var hello = function(){}; return hello; }); ~~~