作家
登录

【深入浅出jQuery】源码浅析--整体架构

作者: 来源: 2017-07-17 16:03:33 阅读 我要评论

【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!


  1. // 无 new 构造  
  2. $('#test').text('Test');  
  3.    
  4. // 当然也可以应用 new  
  5. var test = new $('#test');  
  6. test.text('Test');  

然后想谈谈正则表达式,jQuery 傍边用了大年夜量的┞俘则表达式,我认为如不雅研读 jQuery ,正则程度必定可以或许大年夜大年夜晋升,如不雅是个正则小白,我建议在浏览之前先去懂得以下几点:

比来一向在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的┞锋是精妙,让你感慨代码之美。

原创文┞仿,文笔有限,才疏学浅,文中如有不正之处,万望告诉。

其构造了了,高内聚、低耦合,兼具优良的机能与便利的扩大性,在浏览器的兼容性(功能缺点、渐进加强)优雅的处理才能以及 Ajax 等方面严密而强大年夜的定制功能无不令人赞叹。

别的,浏览源码让我接触到了大年夜量底层的常识。对原生JS 、框架设计、代码优化有了全新的熟悉,接下来将会写一系列关于 jQuery 解析的文┞仿。

网上已经有很多解读 jQuery 源码的文┞仿了,作为系列开篇的第一篇,思前想去起了个【深刻浅出jQuery】的标题,资格尚浅,无法对 jQuery 分析的头头是道,然则 jQuery 源码傍边确切有着大年夜量奇妙的设计,不合层次程度的浏览者都能有收成,所以计算厚着脸皮将本身大年夜中学到的一些常识点共享出来。计算大年夜整体及分支,分章节分析。本篇重要讲 jQuery 的┞符体架构及一些前期预备,先来看看 jQuery 的┞符体构造:

jQuery 整体架构 

整体框架

它们的官方解释是:

不合于 jQuery 代码各个模块细节实现的晦涩难解,jQuery 整体框架的构造十分清楚,按代码行文大年夜致分为如上图所示的模块。

初看 jQuery 源码可能很轻易一头雾水,因为 9000 行的代码感到没有尽头,所以懂得作者的行文思路十分重要。

整体而言,我认为 jQuery 采取的是总--分的构造,固然JavaScript有着感化域的晋升机制,然则 9000 多行的代码为了互相的接洽关系性,并不代表所有的变量都要定义在最顶部。在 jQuery 中,只有全局都邑用到的变量、正则表达式定义在了代码最开首,而每个模块一开端,又会定义一些只在本模块会应用到的变量、正则、办法等。所以在一开端的浏览的过程中话苄很多看不懂其感化的变量,正则,办法。

所以,我认为浏览源码很重要的一点是,摒弃面向过程的思维方法,不要克意去寻求大年夜上至下每一句都要在一开端弄明白。很有可能一开端你在一个奇怪的办法或者变量处卡壳了,很想知道这个办法或变量的感化,然而可能它要到几千行处才被调用到。如不雅去寻求这种逐字逐句弄清跋扈的方法,很有可能在碰鼻几回之后浏览的积极性大年夜受袭击。

事理说了很多,接来下进入真正的┞俘文,对 jQurey 的一些前期预备,小的细节进行分析:

jQuery 闭包构造

  1. // 用一个函数域包起来,就是所谓的沙箱  
  2. // 在这里边 var 定义的变量,属于这个函数域内的局部变量,避免污染全局  
  3. // 把当前沙箱须要的外部变量经由过程函数参数惹人进来  
  4. // 只要包管参数对内供给的接口的一致性,你还可以随便调换传进来的┞封个参数  
  5. (function(window, undefined) {  
  6.    // jQuery 代码  
  7. })(window);  

jQuery 具体的实现,都被包含在了一个急速履行函数构造的闭包琅绫擎,为了不污染全局感化域,只在后面裸露 $ 和 jQuery 这 2 个变量给外界,尽量的避开变量冲突。常用的还有另一种写法:

  1. (function(window) { 
  2.    // JS代码 
  3. })(window, undefined); 

比较推许的的第一种写法,也就是 jQuery 的写法。二者有何不合呢,当我们的代码运行在更早期的情况傍边(pre-ES5,eg. Internet Explorer 8),undefined 仅是一个变量且它的值是可以被盖的。意味着你可以做如许的操作:

  1.  1/10    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      深度学习训练时 GPU 温度过高?输入这几行命令就能迅速降温

    【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 新买回来的不带水冷公版GPU,在满负载运行的时刻,温度大年夜室温立时飙升到85度,并且模型练习不是几分钟>>>详细阅读


    本文标题:【深入浅出jQuery】源码浅析--整体架构

    地址:http://www.17bianji.com/lsqh/36245.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)