ca88官网jQuery总体架构的敞亮深入分析

jQuery脚本总体结构来讲,有如下情势:

复制代码 代码如下:

(function( window, undefined ) {
// Define a local copy of jQueryvar jQuery = function( selector,
context
) { // The jQuery object is
actually just the init constructor
‘enhanced’ return new
jQuery.fn.init( selector, context ); },
// Expose jQuery to the global objectwindow.jQuery =
window.$ = jQuery;
})(window);

对那样的协会不很明白,也没做搜求,只掌握和和所谓的

Technorati 标签: JQuery,Javascript,Web前端

js闭包的定义相关,后天查了一些素材,有了些基本的通晓。
骨子里是概念了三个大局函数,前二个括号为三个无名函数,后面为函数的调用。可以这么敞亮:

复制代码 代码如下:

var fun=function(window, undefined){
… …
}
fun(window);

成套脚本是二个无名函数(近日叫它mainFn吧),函数被加载的时候便起首实行,mainFn能够吸收接纳多少个参数,试行时只传递多少个参数window.

  1. 现实解释下那一个写法的意味:
  2. window
    函数实行时会传入window,那几个流传的window是大局对象(经常为Window)的
  3. 叁本性能且window=this,而盛传mainFn函数中作为其参数时,它会被储存在
    4.
    mainFn的调用对象中.在原型链中查找变量的宗旨是(非嵌套函数):先物色调用
    5.
    目的,再搜索全局对象,所以那使得全部mainFn中运用的window时搜索成效更加高
  4. undefined
    由于施行时从没传递第一个参数,故变量undefined的值为undefined.早先时代版
    7.
    本的浏览器中全局对象大概未有undefined属性,所以不可能直接行使它.日常防止
  5. 本条标题标写法是 window.undefined = window.undefined

接下来在最后让jQuery库中最重大的靶子jQuery成为了window对象的多天性能,并能够简写为“$”。

别的的补给质地:
JQuery是个精美的javascript库,前段时间整合它写javascript,看了下源码。
先从总体、全局的看,jQuery的源码差不离都在底下的代码中:

复制代码 代码如下:

(function() {

//……

})();

第一个括号里面是个佚名函数,第三个括号表示立时施行第八个括号里面包车型地铁代码。
率先知道,javascript里面是不曾命名空间的,要确定保证你的javascript函数、对象与其它的不争辩,这里用了javascript的一个本事:你的具有javascript函数、对象都在一个无名氏函数里面定义,确认保障了所定义的函数、对象的得力限制,起到了命名空间的机能。既然功效范围在那么些无名函数中,怎么被别人利用呢?下边看它的底下代码:

var jQuery = window.jQuery = function(selector, context) {
//……
};

此间让jQuery库中最注重的靶子jQuery成为了window对象的一特性质,那样就可以在其余地方像使用
document(document也是window的一个属性)一样选取jQuery了。大概使用过jQuery的心上人惊讶-小编从未选择jQuery对象,向来利用$的。没有错,那是jQuery的同名对象:

window.$ = jQuery;

方今领悟了吗。

以此库的组织是如此的:

复制代码 代码如下:

  1. (function(window, undefined){
  2. var document = window.document;
  3. var jQuery = …
  4. })(window);

(function(window, undefined){ var document = window.document; var jQuery
= … … … })(window);

全部脚本是五个无名函数(目前叫它mainFn吧),函数被加载的时候便开头执行,mainFn能够选用八个参数,实施时只传递一个参数window.

  1. 切切实实解释下那个写法的意趣:
  2. window
    函数实行时会传入window,这些流传的window是全局对象(平日为Window)的
  3. 壹天性能且window=this,而盛传mainFn函数中作为其参数时,它会被贮存在
    4.
    mainFn的调用对象中.在原型链中查找变量的政策是(非嵌套函数):先物色调用
    5.
    目的,再找找全局对象,所以这使得全数mainFn中运用的window时追寻功能越来越高
  4. undefined
    由于进行时并未有传递第二个参数,故变量undefined的值为undefined.早期版
    7.
    本的浏览器中全局对象恐怕未有undefined属性,所以无法平昔运用它.平常制止
  5. 本条主题素材的写法是 window.undefined = window.undefined

http://www.bkjia.com/Javascript/326220.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javascript/326220.htmlTechArticlejQuery脚本总体结构来说,有如下形式: 复制代码
代码如下: (function( window, undefined ) { // Define a local copy of
jQueryvar jQuery = function( selector, cont…

相关文章