jQuery源码研究01

为了研究方便,我自己定义的jQuery对象改为xQuery,意思是扩展 jQuery.

首先jQuery整体的结构:

1 (function(window,undefined)
2 {
3 var xQuery = (function(){});
4 ....
5 window.xQuery = window.$ = xQuery;
6 })(window);

为什么jQuery要使用这样的结构呢?我们再看下面的代码:

 1 (function(){
2 function ftn1()
3 {
4 return 'ftn1()';
5 }
6 })();
7
8 function ftn1()
9 {
10 return 'ftn2()';
11 }
12 alert(ftn2());//ftn2()
13 alert(ftn1());//抛出异常,禁止访问

  如果想jQuery框架里面的代码和jQuery框架以外的代码隔离起来,那么最好的方式就是把jQuery代码放到一个匿名函数里面,如上代码所示:当我们执行代码的时候ftn2()是可以访问,而ftn()1是不能访问的,从结果我们可以看到,放在闭包里面的方法是不能直接被外界所引用的,那么为什么闭包里面的方法是不能被外界引用了?原因就是在于javascript的闭包原理,直接定义的ftn2函数(直接在script标签里面),他是属于window的对象,因此页面一加载就可以直接运行,而ftn1()的外层是function(){},在javascript里面函数可以这么定义 function ftn(){},也可以这么定义var ftn = function(){},而调用的时候都是ftn(),而第二种ftn就是这个function()的别名,知道这些原理,我们再看看下面的匿名函数,(function(){})();这就是相当于没有别名的一个函数,定义完后马上执行,而且里面的空间是一个封闭的空间,里面的变量也就可以和外部环境隔离开,外部不能进行直接的调用。但是定义的类库总是要被外部调用的,因此jQuery会把window对象传到函数内部,通过window.xQuery = window.$ = xQuery;,使得外部环境可以调用jQuery框架内部定义的方法

转载于:https://www.cnblogs.com/sharpxiajun/archive/2011/09/16/2178454.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章带你搞懂 DEX 文件的结构

From:https://blog.csdn.net/sinat_18268881/article/details/55832757 Dex文件格式详解:https://www.jianshu.com/p/f7f0a712ddfe dex文件解析(第三篇):https://blog.csdn.net/tabactivity/article/details/78950379 深入理解DEX文件格式…

Google AI 研发医疗新模型,预测死亡率比医院高出10%

编译 | 姗姗出品 | 人工智能头条(公众号ID:AI_Thinker)摘要:Google 开发了一种新型算法——读取了这名女性的175,639个数据点——并对死亡风险进行了评估,结果为 19.9%。几天后这位女士去世了…

【Q】【poj 1144】【poj 1523】

割点问题 题目类型相同&#xff0c;于是放到一起写。套了个版就可以了。 贴出版吧&#xff0c;方便查找。 void dfs(int k, int fa){ int j, i, son 0; vis[k] 1; PreOrder[k] BackOrder[k] dfn ; for(i 0; i < adj[k].size(); i ){ j adj[k][i]; …

互联网如何“升级”制造业?《“人工智能+制造”产业发展研究报告》发布

来源&#xff1a;腾讯研究院摘要&#xff1a;过去两年&#xff0c;消费升级、智慧零售、智慧城市等概念成了大众讨论的热点。过去两年&#xff0c;消费升级、智慧零售、智慧城市等概念成了大众讨论的热点。除了这些概念是新经济的增长点之外&#xff0c;另一个原因是当这些概念…

Inspeckage,安卓动态分析工具

From&#xff1a;安卓分析工具 Inspeckage 介绍&#xff1a;http://xdxd.love/2016/08/09/安卓分析辅助工具Inspeckage介绍/ PJ 微信数据库 并查询数据上传服务器&#xff1a;http://blog.csdn.net/qq_35834055 https://github.com/1998lixin/WeChat-database/tree/dev 安卓…

网站的iphone版快开发完了

一个字 累.. 一个人太累了...什么都得自己干 前端 后端 数据库 UI 互交 用户体验 什么都得自己来....哎 会的多累的多? 想想当年刚入行的时候....那个意气风发的小伙子- -....蛋疼啊 转载于:https://www.cnblogs.com/namegary/archive/2011/09/26/2191956.html

看雪『Android安全』板块 2018 年优秀和精华帖分类索引

转载&#xff1a;https://bbs.pediy.com/thread-249602.htm [推荐]『Android安全』版2018年优秀和精华帖分类索引 文章筛选和评价仅代表个人观点&#xff0c;欢迎指正。 列表不定期更新&#xff0c;欢迎自荐~ 2018年 1.逆向技术基础 Frida操作手册-Android环境准备 Frida hook…

【图文解析】带你看清全球机器人四大家族现状,四家企业瓜分中国57%、全球50%的市场份额...

来源&#xff1a;前瞻经济学研究院摘要&#xff1a;工业机器人是智能制造业最具代表性的装备。工业机器人是智能制造业最具代表性的装备。工业机器人集精密化、柔性化、智能化、软件应用开发等先进制造技术于一体&#xff0c;通过对过程实施检测、控制、优化、调度、管理和决策…

从微软一站式代码库中学到的--跨域之间的session共享

据说下面的这段代码这件可以实现不同域之间的session共享&#xff1a; namespace CSASPNETShareSessionBetweenSubDomainsModule{ /// <summary> /// A HttpModule used for sharing the session between Applications in /// sub domains. /// </summar…

专家解读下一代互联网创新模式,核心技术是根本

来源&#xff1a;经济参考报摘要&#xff1a;下一代互联网全面建成还有哪些现实困境&#xff1f;如何解决发展中面临的现实困境&#xff0c;让下一代互联网真正落地生根&#xff1f;如何促进下一代互联网与社会治理同步推进&#xff1f;专访了IPv6推动者、中国工程院院士吴建平…

一文读懂类加载机制 --- ClassLoader

From&#xff1a;https://www.cnblogs.com/sunnick/p/9609326.html 【JVM笔记】classloader加载class文件的原理和机制&#xff1a;https://www.jianshu.com/p/52c38cf2e3d4 JVM 架构整体架构 在进入 classloader 分析之前&#xff0c;先了解一下 jvm 整体架构&#xff1a; JV…

《非暴力沟通》读书笔记

《非暴力沟通》读书笔记 【本书作者】马歇尔卢森堡&#xff0c;卡尔罗杰斯的弟子&#xff0c;同时其思想深受”圣雄“甘地和存在主义哲学大师马丁布伯的影响。 【本书要解答的问题】是什么使我们明明相爱&#xff0c;却难以体会甚至互相伤害&#xff1f;【爱的表达】是什么让有…

数学家到底在研究什么?牛人解说数学体系

来源&#xff1a;环球物理摘要&#xff1a;这个题目在当今Computer Vision中百花齐放的世界中并没有任何特别的地方。事实上&#xff0c;使用各种Graphical Model把各种东西联合在一起framework&#xff0c;在近年的论文中并不少见。一、为什么要深入数学的世界作为计算机的学生…

Frida hook 加固的 Android 应用

Android 加固应用Hook方式 --- Frida&#xff1a;https://github.com/xiaokanghub/Android 转载&#xff1a;使用 frida 来 hook 加固的 Android 应用的 java 层&#xff1a;https://bbs.pediy.com/thread-246767.htm 使用 Frida 给 apk 脱壳并穿透加固 Hook 函数&#xff1a…

Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)

我觉得叫 "皮肤" 不如叫 "样式" 或 "风格", 因为它可以包含和动作关联的动画.在 FMX 下, 控件可以任意绘制, 各部件个性化的属性可以统一保存成一个 *.style 文件.XE2 在 "...\Program Files\Embarcadero\RAD Studio\9.0\Redist\styles\Fmx…

176页报告辟谣自动化时代的就业危机(附下载)

来源&#xff1a;智东西摘要&#xff1a;世行从新兴技术的社会影响出发&#xff0c;盘点劳动力市场的再培训、再就业需求&#xff0c;以及资本、政府的社会职责。近十年&#xff0c;以人工智能为代表的技术爆炸正在重塑新一轮社会经济格局。这些创新极大地改变了就业市场形势&a…

CSS3技巧 —— 渐变

CSS渐变在Webkit率先得到实现&#xff0c;现在Firefox 3.6也支持了&#xff0c;来看下各个浏览器如何实现CSS渐变效果。 Webkit 下面这行代码可用于Chrome, Safari等&#xff0c;它能实现线性渐变&#xff0c;从top(#ccc)渐变到bottom(#000)。 background: -webkit-gradient(li…

Frida hook 插件化 apk ( classloader )

From&#xff1a;使用 frida hook 插件化 apk&#xff1a;https://bbs.pediy.com/thread-258772.htm 最近拿到一个XX视频apk样本&#xff0c;里面有视频、直播和小说&#xff0c;没有VIP只能试看30秒&#xff0c;刚好最近学习frida&#xff0c;用来练习下&#xff0c;分析过程中…

MIT开发出新界面系统 操作员可用思维控制机器人

来源&#xff1a;VentureBeat、网易科技摘要&#xff1a;麻省理工学院(MIT)下属计算机科学与人工智能实验室(CSAIL)的研究人员开发了一种新界面&#xff0c;它可以读取人类操作人员的脑电波&#xff0c;让他们通过思维命令机器执行任务。据VentureBeat报道&#xff0c;用思维控…

div下图片自适应解决方法

我们&#xff08;特别是像我一样的菜鸟&#xff09;经常会遇到一个问题——图片自适应。这个问题是很普遍的。在文章区&#xff0c;在论坛&#xff0c;可以这么说&#xff1a;哪儿需要上传图片&#xff0c;哪儿就存在这个问题&#xff0c;而论坛上也不时有人询问。为什么&#…