[原]jquery第一行代码有意思的两点
来源:互联网 发布:集思宝怎么导出数据 编辑:程序博客网 时间:2024/06/06 05:26
且看jquery的第一行和最后一行代码
(function(window, undefined) {})(window);
这种匿名结构我们屡见不鲜,今天要说的不是这个,而是第二个参数,jquery并没有给他传值,为什么?我们知道,没有传值的形参会被默认设置为window.undefined,那为什么jquery开发者没有使用window.undefined本身,而是使用一个形参替代呢?
想了一下,至少有两点值得这样做(欢迎补充):
- undefined被设置为了局部变量,局部变量意味着直接在当前作用域中即可得到使用,不用再查找上级作用域链,减少搜索次数提高效率。
- 且看压缩后的代码,(function(a,b){})(window),undefined被很巧妙的替换成的b,而在后续的代码中,很多判断都用到了undefined,而此时用b就行了,代码量减少很可观。局部变量在压缩的时候会被简短字符替换,这样可以有效的减少压缩后的文件大小,所以很多局部变量被拉出来设置,不只是为了暂存结果,也有利于压缩。
jquery代码有很多精巧有意思的地方,值得学习,都是使用语言本事,思想多重要。
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- [原]jquery第一行代码有意思的两点
- Jquery一个有意思的代码
- Hadoop的第一行代码
- Kotlin的第一行代码
- 我的第一行PHP代码
- 第一行代码:通知的使用总结
- 我的第一行Swift代码
- 第一章 你的第一行代码
- Android Fragment的使用 《第一行代码》
- 第一行代码-9.4 服务的生命周期
- 第一行代码-10.1 WebView的用法
- 【第一行代码】Android的广播机制
- 活动的最佳实践--第一行代码
- Android的多线程---《第一行代码Android》
- 我的第一行python代码
- 第一行代码 Git的使用
- 第一行代码-活动的生存周期
- 第一行代码
- Heritrix源码分析(四) 各个类说明(一)
- 飞行员配对方案问题
- Hbase源码分析之org.apache.hadoop.hbase.client包
- Heritrix源码分析(四) 各个类说明(二)
- struts2之单个文件上传
- [原]jquery第一行代码有意思的两点
- Heritrix源码分析(五) 如何让Heritrix在Ecplise等IDE下编程启动
- Heritrix源码分析(六) Heritrix的文件结构分析
- 最大子段和——解题报告
- Heritrix源码分析(七) Heritrix总体介绍
- USACO 1.1.3 Friday the Thirteenth
- 电子商务概述
- 字符串转整形
- Heritrix源码分析(八) Heritrix8个处理器(Processor)介绍