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…

相关文章