jQuery总体架构的理解

来源:互联网 发布:新三国知乎 编辑:程序博客网 时间:2024/06/04 04:28

jQuery脚本总体结构来说,有如下形式:

 { // Define a local copy of jQueryvar jQuery = function( selector, context ) 
 { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context ); },
 // Expose jQuery to the global object
window.jQuery = window.$ = jQuery; })(window); 

对这样的结构不很理解,也没做深究,只知道和和所谓的

Technorati 标签: JQuery,Javascript,Web前端
js闭包的概念相关,今天查了一些资料,有了些基本的理解。

实际是定义了一个全局函数,前一个括号为一个匿名函数,后面为函数的调用。可以这样理解:

fun(window);

如http://streamlet77.javaeye.com/blog/914305的解释可以比较好的说明: 

整个脚本是一个匿名函数(暂时叫它mainFn吧),函数被加载的时候便开始执行,mainFn可以接收两个参数,执行时只传递一个参数window.

   1. 具体解释下这个写法的意思:
   2.   window     函数执行时会传入window,这个传入的window是全局对象(通常为Window)的
   3.              一个属性且window=this,而传入mainFn函数中作为其参数时,它会被存储在
   4.              mainFn的调用对象中.在原型链中查找变量的策略是(非嵌套函数):先查找调用
   5.              对象,再查找全局对象,所以这使得整个mainFn中使用的window时查找效率更高
   6.   undefined  由于执行时并未传递第二个参数,故变量undefined的值为undefined.早期版
   7.              本的浏览器中全局对象可能没有undefined属性,所以不能直接使用它.通常避免
   8.              这个问题的写法是 window.undefined = window.undefined 

 

然后在最后让jQuery库中最重要的对象jQuery成为了window对象的一个属性,并可以简写为“$”。

原创粉丝点击