jQuery技术

菜鸟的jQuery源码学习笔记(一)

字号+ 作者:H5之家 来源:H5之家 2017-05-20 16:00 我要评论( )

整个jQuery是一个自调用的匿名函数: 1 (function(global, factory) { 2 if (typeof module === object typeof module.exports === object ) { 3 module.e

整个jQuery是一个自调用的匿名函数:

((!Error("jQuery requires a window with a document"} }(}));

自调用函数大家都不陌生,前面的function(){}是函数定义,然后紧接着的()表示立即执行,这样构建了一个命名空间,其中的变量都是局部变量,不管起什么名字,都不会覆盖全局变量。这样就不会污染全局的命名空间。如果有不熟悉的同学,可以去看看作用域链和闭包的基础知识就明白啦。

这个子调用函数的函数体我们暂时可以不用管,貌似是处理jQuery与CommonJS、Node.js等的冲突和协调关系,这个我觉得不是重点,重点是这个自调用函数的参数。

整个参数列表有两个参数,第一个参数是传入Global对象,所有的全局变量都是Global对象的成员。传入这个变量,我们就将Global对象变成了这个自调用匿名函数的局部变量了,这样当我们访问它时,在自调用匿名函数的作用域中就能找到它,而不用将作用域链会退到Global,这样就更快啦。

第二个参数就是我们的jQuery啦,其中定义了jQuery的所有的内容,咱们的重点就在这里,那么现在开始,我们往下看。

}

在自调用的匿名函数里面,定义了一个jQuery变量,它是一个方法,执行后返回一个新jQuery对象,不过这个对象实际上是由jQuery.fn.init函数构建。在整个jQuery主体代码的最后会将window.jQuery和window.$指向这个jQuery变量:

window.jQuery = window.$ = jQuery;3 }

这样当我们使用$(...)或者jQuery(...)的时候就能创建jQuery对象啦!

下期预告:

我们都知道,在javascript中构建对象的方法有很多种,什么工厂模式、构造函数模式、原型模式等等,jQuery使用的是构造函数和原型相结合的方式。下期我们来看看jQuery的原型是怎么样的。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery each()嵌套使用小结

    JQuery each()嵌套使用小结

    2017-05-09 15:05

  • jquery技巧总结(转)

    jquery技巧总结(转)

    2017-04-23 13:01

  • jquery学习(七)

    jquery学习(七)

    2017-04-04 18:00

  • Jquery中的(function($){...})(jQuery)

    Jquery中的(function($){...})(jQuery)

    2017-03-28 08:05

网友点评