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核心架构设计

相关文章