1. (function (root, factory) {
    2. if (typeof define === 'function' && define.amd) {
    3. // AMD
    4. define(['jquery'], factory);
    5. } else if (typeof exports === 'object') {
    6. // Node, CommonJS之类的
    7. module.exports = factory(require('jquery'));
    8. } else {
    9. // 浏览器全局变量(root 即 window)
    10. root.returnExports = factory(root.jQuery);
    11. }
    12. }(this, function ($) {
    13. // 方法
    14. function myFunc(){};
    15. // 暴露公共方法
    16. return myFunc;
    17. }));

    更多依赖的情况

    1. (function (root, factory) {
    2. if (typeof define === 'function' && define.amd) {
    3. // AMD
    4. define(['jquery', 'underscore'], factory);
    5. } else if (typeof exports === 'object') {
    6. // Node, CommonJS之类的
    7. module.exports = factory(require('jquery'), require('underscore'));
    8. } else {
    9. // 浏览器全局变量(root 即 window)
    10. root.returnExports = factory(root.jQuery, root._);
    11. }
    12. }(this, function ($, _) {
    13. // 方法
    14. function a(){}; // 私有方法,因为它没被返回 (见下面)
    15. function b(){}; // 公共方法,因为被返回了
    16. function c(){}; // 公共方法,因为被返回了
    17. // 暴露公共方法
    18. return {
    19. b: b,
    20. c: c
    21. }
    22. }));