jQuery源码学习
✿ 采用IIFE立即执行函数 https://www.cnblogs.com/keketest/p/6121228.html
//第一个圆括号:将匿名函数转换为函数表达式。
//第二个圆括号:立即执行匿名函数
https://segmentfault.com/a/1190000003102597
✿ window对象检测
为了保证不污染全局变量,jQuery源码中将所有的对象及方法创建都放到了factory函数中执行。
通过形参global来传递window变量,在利用factory创建jQuery对象以前,首先进行window变量的检测。
global是顶层变量, //不是这个 →(ES6第二章最后) http://es6.ruanyifeng.com/#docs/let
global指的是window,之所以用global,是怕如果有人传名为window的参数,会把框架里里面的window对象,复写掉,
所以用了global,代替window,防止避免同名的错误。
factory是用来生成jQuery实例的。
✿ module 和 module.exports主要是为了让jQuery能够以模块的形式注入到没有window.document变量的诸如Node.js的运行环境
中,当遇到这种情况,就不会在window中设置jQuery$变量。
要使用jQuery时,则是使用所返回的jQuery对象,如在Node.js中:
var jQuery = require("jquery")(window);