源码解析

  1. (function (root, factory) {
  2. // 判断是否支持AMD(define是否存在)
  3. if (typeof define === 'function' && define.amd) {
  4. define(['b'], factory)
  5. // 判断是否支持NodeJS模块格式(exports是否存在)
  6. } else if (typeof module === 'object' && module.exports) {
  7. module.exports = factory(require('b'))
  8. // 前两个都不存在,则将模块公开到全局(window或global)
  9. } else {
  10. root.returnExports = factory(root.b)
  11. }
  12. })(this, function (b) {
  13. ...
  14. }))