【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!
- // 无 new 构造
- $('#test').text('Test');
- // 当然也可以应用 new
- var test = new $('#test');
- 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 闭包构造
- // 用一个函数域包起来,就是所谓的沙箱
- // 在这里边 var 定义的变量,属于这个函数域内的局部变量,避免污染全局
- // 把当前沙箱须要的外部变量经由过程函数参数惹人进来
- // 只要包管参数对内供给的接口的一致性,你还可以随便调换传进来的┞封个参数
- (function(window, undefined) {
- // jQuery 代码
- })(window);
jQuery 具体的实现,都被包含在了一个急速履行函数构造的闭包琅绫擎,为了不污染全局感化域,只在后面裸露 $ 和 jQuery 这 2 个变量给外界,尽量的避开变量冲突。常用的还有另一种写法:
- (function(window) {
- // JS代码
- })(window, undefined);
比较推许的的第一种写法,也就是 jQuery 的写法。二者有何不合呢,当我们的代码运行在更早期的情况傍边(pre-ES5,eg. Internet Explorer 8),undefined 仅是一个变量且它的值是可以被盖的。意味着你可以做如许的操作:
推荐阅读
深度学习训练时 GPU 温度过高?输入这几行命令就能迅速降温
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 新买回来的不带水冷公版GPU,在满负载运行的时刻,温度大年夜室温立时飙升到85度,并且模型练习不是几分钟>>>详细阅读
地址:http://www.17bianji.com/lsqh/36245.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示