美高梅开户-美高梅官方网站开户

您的位置:美高梅开户 > 美高梅官方网站开户 > 美高梅官方网站开户:jQuery总体架构的理解分析

美高梅官方网站开户:jQuery总体架构的理解分析

发布时间:2019-09-17 11:05编辑:美高梅官方网站开户浏览(58)

    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. ...
    5. ...
    6. })(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

    您可能感兴趣的文章:

    • 基于jQuery架构javascript基础体系
    • jQuery源码分析-01总体架构分析
    • jQuery 2.0.3 源码分析之core(一)整体架构
    • jQuery学习笔记之总体架构
    • jquery的总体架构分析及实现示例详解
    • 谈一谈jQuery核心架构设计

    本文由美高梅开户发布于美高梅官方网站开户,转载请注明出处:美高梅官方网站开户:jQuery总体架构的理解分析

    关键词: 美高梅开户

上一篇:javascript简单性能问题及学习笔记

下一篇:没有了