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

您或许感兴趣的稿子:

相关文章