jQuery源码学习

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);