jQuery总体架构的明分析

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

复制代码 代码如下:

(function( window, undefined ) {
// 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 objectwindow.jQuery =
window.$ = jQuery;
})(window);

针对这样的组织不深知,也尚无做探索,只知与同所谓的

Technorati 标签: JQuery,Javascript,Web前端

js闭包的概念相关,今天翻开了部分素材,有矣数基本的知道。
实则是概念了一个大局函数,前一个括号为一个匿名函数,后面也函数的调用。可以如此敞亮:

复制代码 代码如下:

var fun=function(window, undefined){
… …
}
fun(window);

举脚论是一个匿名函数(暂时被它mainFn吧),函数被加载的时光就开实施,mainFn可以接过两个参数,执行时独自传递一个参数window.

  1. 切切实实说明下者写法的意:
  2. window
    函数执行时会见流传window,这个流传的window是全局对象(通常也Window)的
  3. 一个性且window=this,而盛传mainFn函数中作该参数时,它见面吃贮存于
    4.
    mainFn底调用对象中.在原型链中查找变量的政策是(非嵌套函数):先找调用
    5.
    对象,再找全局对象,所以就让所有mainFn中运用的window时找效率还胜似
  4. undefined
    由于实行时从没传递第二单参数,故变量undefined的价值为undefined.早期版
    7.
    随的浏览器被全局对象可能没undefined属性,所以无克直接行使它.通常避免
  5. 夫问题的写法是 window.undefined = window.undefined

然后以结尾为jQuery库中极根本之目标jQuery成为了window对象的一个性,并可简写为“$”。

别的补材料:
JQuery是独美好的javascript库,最近重组其写javascript,看了下源码。
优先打总体、全局的关押,jQuery的源码几乎都当下面的代码中:

复制代码 代码如下:

(function() {

//……

})();

率先只括号里凡是独匿名函数,第二个括号表示这行第一个括号里的代码。
首先知道,javascript里面是尚未命名空间的,要保证你的javascript函数、对象以及其余的匪冲突,这里用了javascript的一个技:你的有着javascript函数、对象还当一个匿名函数里面定义,确保了所定义之函数、对象的有用限制,起及了命名空间的企图。既然作用范围在此匿名函数中,怎么为他人使用呢?下面看她的脚代码:

var jQuery = window.jQuery = function(selector, context) {
//……
};

此地为jQuery库中不过重大之目标jQuery成为了window对象的一个性质,这样虽可以以其他地方比如用
document(document也是window的一个属性)一样用jQuery了。也许下过jQuery的爱侣惊讶-我尚未用jQuery对象,一直使用$的。没错,那是jQuery的同名对象:

window.$ = jQuery;

今昔知道了吧。

其一库房底构造是如此的:

复制代码 代码如下:

  1. (function(window, undefined){
  2. var document = window.document;
  3. var jQuery = …
  4. })(window);

(function(window, undefined){ var document = window.document; var jQuery
= … … … })(window);

合脚论是一个匿名函数(暂时让她mainFn吧),函数被加载的时段便开实行,mainFn可以吸纳两单参数,执行时单传递一个参数window.

  1. 切实说下是写法的意:
  2. window
    函数执行时会见传播window,这个流传的window是全局对象(通常为Window)的
  3. 一个性能且window=this,而传播mainFn函数中作那个参数时,它会叫贮存在
    4.
    mainFn底调用对象中.在原型链中查找变量的政策是(非嵌套函数):先找调用
    5.
    靶,再找找全局对象,所以马上使所有mainFn中动用的window时找效率还强
  4. undefined
    由于实施时没有传递第二个参数,故变量undefined的值也undefined.早期版
    7.
    遵循的浏览器被全局对象可能无undefined属性,所以未可知直接用它.通常避免
  5. 以此题目之写法是 window.undefined = window.undefined

http://www.bkjia.com/Javascript/326220.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javascript/326220.htmlTechArticlejQuery脚本总体结构来说,有如下形式: 复制代码
代码如下: (function( window, undefined ) { // Define a local copy of
jQueryvar jQuery = function( selector, cont…

相关文章