我的jQuery源码读后感-jquery1.11.x 集成了 AMD
jquery1.11.x 集成了 AMD
AMD 加入到了 jQuery, jQuery 把源码切分成各个逻辑模块.
- ready 整合成依赖 Deferred 的模块.
- 有些模块被切分成一些更加利于维护的片段.
- var 文件夹指定的模块只包含共享的变量声明.
(function( global, factory ) {
if( typeof module === "object" && typeof module.exports === "object" ) {
// 对于CommonJS的和CommonJs的类似环境中, 如果存在一个适当的window,
// 则执行global工厂方法,获取jQuery对象;
// 在那些天生不拥有window,document的环境中,比如Node.js,
// 弄了个jQuery做的factory伺候module.exports;
// 这个突出了建立一个真正window的需求
// e.g var jQuery = require("jquery")(window);
module.exports = global.document ? factory( global, true) : function( w ) {
if( !w.document ){
throw new Error(" jQuery requires a window with a document" );
}
return factory( w );
};
} else {
factory( global );
}
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ){
var jQuery = {};
return jQuery;
}));
// 大概意思就是jQuery现在支持Node了,在Node中把global作为window使.