jQuery中的已运行疑惑

远在南非 发布于 2015/07/02 09:01
阅读 156
收藏 1

今天在看jquery 的源代码的时候发现jquery中的一段代码


var jQuery = (function() {
    var jQuery = function( selector, context ) {
        return new jQuery.fn.init( selector, context, rootjQuery );
    }     return jQuery;
})();

这段代码中谁能该仔细讲讲是个什么意思,这样写和

var jQuery = function( selector, context ) {
        return new jQuery.fn.init( selector, context, rootjQuery );
 }



有什么区别吗?




加载中
0
游走的鱼
看错了吧 jquery 现在的源码里面 就是下面这种啊
var
	// Use the correct document accordingly with window argument (sandbox)
	document = window.document,

	version = "2.1.4",

	// Define a local copy of jQuery
	jQuery = function( selector, context ) {
		// The jQuery object is actually just the init constructor 'enhanced'
		// Need init if jQuery is called (just allow error to be thrown if not included)
		return new jQuery.fn.init( selector, context );
	},

	// Support: Android<4.1
	// Make sure we trim BOM and NBSP
	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,

	// Matches dashed string for camelizing
	rmsPrefix = /^-ms-/,
	rdashAlpha = /-([\da-z])/gi,

	// Used by jQuery.camelCase as callback to replace()
	fcamelCase = function( all, letter ) {
		return letter.toUpperCase();
	};
游走的鱼
https://github.com/jquery/jquery/blob/1.7/src/core.js https://github.com/jquery/jquery/blob/2.1.4/src/core.js
boystudio
boystudio
再往上一层还有个闭包,然后在最后面还有个return jQuery; 是你没有把代码看完,只看到这一段。
0
boystudio
boystudio

返回的结果是一样的,但第一段代码用的是闭包,可以在一些场景中避免一些错误,请参考js闭包知识。

0
欣儿
欣儿
匿名函数,好像是自动加载吧
返回顶部
顶部