jQuery源码学习之一 (采用匿名函数自执行模式)
1、如何在jquery官网找到 bug的相关说明?
打开网址 http://bugs.jquery.com/ 后,再搜索框中输入bug的 编号(在jquery源码的注释中找到,例如:“ #13335 ”),可找到相关的详细说明和评论。
2、jquery应用 匿名函数自执行模式(避免全局变量污染)
(function( window, undefined ) { })(window)
① 为何传递参数window?
原因一:根据js的作用域链原理:window处于作用域链的顶级,作为参数传递可以加快查找速度,不用一级一级向上查找。
原因二:作为参数传递便于 使用压缩工具压缩代码,否则window是不可压缩。
压缩的jquery源码(参数window被压缩为e):
(function( e, undefined ) { })(window);
②为何传递参数undefined?
原因:undefined为window的一个属性,在ie7下undefined可以被修改,为了防止被修改,作为参数传入。
注:若是jQuery采用下面的写法则undefined 的传入没有意义。
(function( e, undefined ) { })(window, undefined);
备注:若是在自己的程序中采用匿名函数自执行 模式,则其前面的分号是 必须的!否则浏览器报错,省略其后面的分号,没有报错!为了养成良好的代码风格,建议不要忽略分号。
学习版本:jquery-2.0.3
jquery官网:http://jquery.com/
Sizzle官网:http://sizzlejs.com/
勤于总结 乐于分享