1. 程式人生 > >jQuery原始碼分析(1)

jQuery原始碼分析(1)

相信很多人剛開始和我一樣不太熟悉jQuery程式碼開頭的那幾行,說白了就是jQuery為了支援其他模組化的js外掛而設計的,以jQuery3.2.1為例

( function( global, factory ) { //括號後邊的this和後面的function都是傳入的引數,分別對應global和factory. // global 在瀏覽器中為window , factory為為構造方法可以理解為this     "use strict";     //使用強勢規範 目的是為了防止變數命名重複     if (typeof module === "object" && typeof
module.exports === "object") { //如果支援模組化,也就是有其他類似nodejs的外掛      module.exports = global.document ? //如果支援匯出document就然後就執行外掛的exports匯出factory( global, true )功能             factory( global, true ) :             function( w ) { //不支援的話就報錯                 if ( !w.document ) {                     throw new
Error( "jQuery requires a window with a document" );                 }                 return factory( w );             };     } else { //如果沒有模組化,也就是一般的情況就執行factory(globle)方法         factory( global );     }     //如果這個函式有需要從外界傳遞的引數的時候,就可以通過function後面的小括號裡的值來傳遞,如果不需要傳遞引數就不用     //此處將函式裡範圍的jquery作為返回值給主函式
})(typeof window !== "undefined" ? window : this, function (window, noGlobal) { //傳入window讓查詢速度更快,而且便於壓縮 然後就是後面關於jQuery的一萬多行的程式碼,巴拉巴拉