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

若或许感兴趣之章:

  • 据悉jQuery架构javascript基础体系
  • jQuery源码分析-01一体化架构分析
  • jQuery 2.0.3
    源码分析的core(一)整体架构
  • jQuery学习笔记之完好架构
  • jquery的完好架构分析以及实现示例详解
  • 叙一言jQuery核心架构设计

相关文章