我刚刚开始学习JavaScript中的模式,并习惯于编写这样的JavaScript:
(function(window){
var privateVar;
var privateFunc = function(param){
//do something
}
return{
publicFunc: function(){
do something
}
}(window));
Run Code Online (Sandbox Code Playgroud)
但最近我发现一些脚本在开头就写了这样的东西:
(function (root, factory) {
if ( typeof define === 'function' && define.amd ) {
define('something', factory(root));
} else if ( typeof exports === 'object' ) {
module.exports = factory(root);
} else {
root.something = factory(root);
}
})(window || this, function (root) {
var privateVar;
var privateFunc = function(param){
//do something
}
return{
publicFunc: function(){
do something
}
});
Run Code Online (Sandbox Code Playgroud)
那么,这段代码在开始时意味着什么呢?它与此模块导出技术之间有什么区别:
var MODULE …
Run Code Online (Sandbox Code Playgroud)