这是jQuery AMD的语法吗?

时间:2015-03-19 06:06:10

标签: jquery js-amd

最近,我可以看到所有的jQuery插件都从下面的行开始。

function (factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // CommonJS
        module.exports = factory;
    } else {
        // Browser globals
        factory(jQuery);
    }
}(function ($) {}));

我认为它是类似于Require.js的类似的concpet,但我不太确定。有人能告诉我这叫什么或它是如何工作的?这样我就可以了解更多。

PS:如果我们已经在SO中,请随时修改问题的标题或将其标记为重复。

1 个答案:

答案 0 :(得分:4)

你是对的。

如果我们需要实现AMD,那么我们倾向于Require.js,但是如果我们想要在没有Require.js的情况下实现相同的目标呢?然后我们将提到您提到的语法。这被称为UMD : Universal Module Definition

来自消息来源:

  

jqueryPlugin.js    - 定义一个适用于AMD和浏览器全局变量的jQuery插件。

     

jqueryPluginCommonjs.js    - 定义一个适用于AMD和浏览器全局变量的jQuery插件,但也适用于CommonJS环境。如果您正在运行,请使用此版本   CommonJS中的jQuery(或jquip或jquery-untouched项目)   可以适当加载jQuery的环境。