起初我花了很长时间才理解这种模式,我认为这主要是因为它的编写方式:
(function(root, factory) {
// Export MyModule depending on the environment
if (typeof define === "function" && define.amd) {
define("MyModule", [], factory);
} else {
root.MyModule = factory();
}
}(this, function() {
return {
// Module definition
};
}));
这不和这个完全一样吗?
(function(root) {
var factory = function() {
return {
// Module definition
};
};
// Export MyModule depending on the environment
if (typeof define === "function" && define.amd) {
define("MyModule", [], factory);
} else {
root.MyModule = factory();
}
}(this));
现在有一个 var 语句,但我发现这更容易阅读。我在这里错过了什么吗?是否有充分的理由使用第一种方法?