ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
为了让同一个模块可以运行在前后端,在写作过程中需要考虑兼容前端也实现了模块规范的环境。为了保持前后端的一致性,类库开发者需要将类库代码包装在一个闭包内。以下代码演示如何将 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; }); ~~~