1. 程式人生 > >jquery源碼分析(1)LIFE函數

jquery源碼分析(1)LIFE函數

efi 如果 fine com define http code str ...

這次學習 jQuery 源碼,基於當前最新的版本,3.3.1,源碼地址:jquery

先說一下LIFE函數;LIFE函數其實方法挺多的,CODE如下

(function(){...})()
!function foo(){...}();
+function foo(){...}();
void function() {...}();

var a = function(){...}();

但是在jquery中的立即執行或許比較迷惑(反正我是迷惑了)

( function( global, factory ) {

	"use strict";

	if ( typeof module === "object" && typeof module.exports === "object" ) {
		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 ) {})

看了上面的代碼,我決定在精簡一下

( function( global, factory ) {
	"use strict";
	factory( global );
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {})

在實際插入一下看看,這是我的理解,如果錯了請大神指出

( function( global, factory ) {
    "use strict";
    //factory( global );
    var factory = function( window, noGlobal ) {})( typeof window !== "undefined" ? window : this); 
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {})

  

jquery源碼分析(1)LIFE函數