此亦即UMD写法, 也就是糅合了AMD, CommonJS, 以及兼容传统浏览器的写法.
;(function(root, factory) {
// commonJS 规范
if (typeof module === 'object' && module && module.exports) {
module.exports = factory(/* require deps */);
}
// AMD规范
else if (typeof define === 'function' && define.amd) {
define([/* deps */], factory);
}
// 浏览器实现
else {
root.yourModuleName = factory(/* deps */);
}
}(this, function(/* deps */) {
function max(arr) {
return Math.max.apply(Math, arr);
}
return {
max: max
};
}));