最近,我可以看到所有的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中,请随时修改问题的标题或将其标记为重复。
答案 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的环境。