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闭包的定义相关,明天查了一些材质,有了些基本的接头。
ca88官网,实际上是概念了多个大局函数,前一个括号为二个匿名函数,前面为函数的调用。可以这么领悟:

复制代码 代码如下:

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

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

  1. 具体表达下这几个写法的趣味:
  2. window
    函数执行时会传入window,这些流传的window是大局对象(日常为Window)的
  3. 叁本品质且window=this,而盛传mainFn函数中作为其参数时,它会被贮存在
    4.
    mainFn的调用对象中.在原型链中查找变量的政策是(非嵌套函数):先物色调用
    5.
    目的,再找找全局对象,所以那使得全体mainFn中应用的window时追寻效用更高
  4. undefined
    由于举行时并未传递第2个参数,故变量undefined的值为undefined.早期版
    7.
    本的浏览器中全局对象恐怕没有undefined属性,所以无法一直运用它.日常防止
  5. 那么些题材的写法是 window.undefined = window.undefined

下一场在终极让jQuery库中最主要的目的jQuery成为了window对象的一个天性,并得以简写为“$”。

其它的补偿资料:
JQuery是个卓绝的javascript库,如今结合它写javascript,看了下源码。
先从完整、全局的看,jQuery的源码大概都在下边的代码中:

复制代码 代码如下:

(function() {

//……

})();

率先个括号里面是个匿名函数,第四个括号表示立刻执行第1个括号里面的代码。
率先知道,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);

全方位脚本是1个匿名函数(一时半刻叫它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…

相关文章